명령 인수로 입력 한 파일 위치에서 system()을 사용하여 cat을 호출하는 간단한 프로그램을 작성하려고합니다. 하지만 파일을 호출 할 때마다 분할 오류 (코어 덤프)가 발생합니다. 이유를 확인해 주시겠습니까 (제 프로그램에서 어디에도 보이지 않습니다.이 오류를 얻기 위해 메모리를 가지고 뭔가를하고 있습니다!). 당신의 strcat
통화에서간단한 명령 행 프로그램에서 분할 오류
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[])
{
if(argc != 2)
{
printf("usage: %s filename", argv[0]);
}
else
{
printf("commad: %s", strcat("cat ", argv[1]));
system(strcat("cat ", argv[1]));
}
return 0;
}
문자열 리터럴을 수정하는 것은 정의되지 않은 동작입니다. – hmjd
설명해 주시겠습니까 – MedAli
@MohamedAliJamaoui strcat에 대한 대상 버퍼를 제공해야합니다 –