첫 번째 "프로세스" 프로그램을 실행하려고 하는데 다음 오류가 발생합니다.
./fork.c: line 4: syntax error near unexpected token `('
./fork.c: line 4: `int main()'
코드가 정확하다고 확신합니다.
#include <sys/types.h>
#include <stdio.h>
int main() {
pid_t pid;
printf("Hello fork()\n");
switch(pid=fork()) {
case -1: printf("Error by fork().....\n"); exit(0);
case 0: printf("I'm the child process \n"); break;
default: printf("I'm the dad \n"); break;
}
exit(0);
}
뭐가 문제 야?
답변1
그냥 도망칠 수는 없어요 ./fork.c
. 이것은 프로그램이 아닙니다. 이것은원천프로그램을 위해. 사용은 ./
파일이 스크립트라고 가정하고(그렇지 않음) 그에 따라 처리합니다.
그러나 다른 답변에서 지적했듯이 컴파일러(예:작은 C 컴파일러)는 명시적인 컴파일 없이 C 코드를 실행할 수 있습니다.
C 프로그램이므로 프로그램을 컴파일해야 합니다. cc -o fork fork.c
한번 시도해 보세요 ./fork
. 여기서는 작동합니다.
답변2
그것은 프로그램이 아니라 프로그램의 소스 코드입니다.
C는컴파일된즉, 실행하기 전에 기계가 읽을 수 있는 명령어로 "컴파일"해야 합니다. C 언어를 사용하는 경우 "C 컴파일러"( cc
)가 이를 수행할 수 있습니다.
cc -o fork for.c # compile the code
chmod +x fork # ensure it it executable
./fork # run the compiled program
여러 소스 파일과 외부 라이브러리를 사용하여 더 복잡한 프로그램으로 계속 작업하면서 "GNU 컴파일러 컬렉션"( gcc
)을 계속 사용하고 make
소스 코드를 작동 가능한 실행 파일로 변환하는 방법을 설명할 수 있습니다.
이 문제스크립트(소스 코드로 작업할 때)와 컴파일된 프로그램 간의 차이점에 대한 모든 종류의 정보가 있습니다.