最初の「プロセス」プログラムを実行しようとすると、次のエラーが発生します。
./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
ソースコードを操作可能な実行可能ファイルに変換する方法を説明できます。
この問題スクリプト(ソースコードで作業するとき)とコンパイルされたプログラムの違いに関するすべての種類の情報があります。