왜 이 C 프로그램을 실행할 수 없나요?

왜 이 C 프로그램을 실행할 수 없나요?

첫 번째 "프로세스" 프로그램을 실행하려고 하는데 다음 오류가 발생합니다.

./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소스 코드를 작동 가능한 실행 파일로 변환하는 방법을 설명할 수 있습니다.

이 문제스크립트(소스 코드로 작업할 때)와 컴파일된 프로그램 간의 차이점에 대한 모든 종류의 정보가 있습니다.

관련 정보