次のコードをC++で実行しようとしています。私は理解できないと思われるいくつかの宣言エラーが発生しています。エラーブロックはコードの下に与えられます。宣言エラーを取得する
fork()システムコールを使用して、子プロセスで特定の数値の階乗を計算するプログラムを作成しようとしています。入力整数はコマンドラインから与えられます。例えば、 6が与えられた場合、出力は720になります。親と子はそれ自身のデータのコピーを持つので、子は階乗を出力しなければなりません。親プロセスは、プログラムを終了する前に子プロセスが完了するのを待つためにwait()呼び出しを呼び出さなければなりません。
main.cppに:13:13:エラー: 'フォーク' がこのスコープで宣言されていなかった
PID =フォークフォークはコード内で宣言されているものの
#include<stdio.h>
#include<sys/wait.h>
#include<stdlib.h>
int main(){
int num;
int fact=1;
int pid, k=1;
int status;
printf("Enter a number....nn");
scanf("%d",&num);
printf("n");
pid = fork();
if (pid == -1){
printf("Error Occured in Forking a Process..n");
exit(0);
}
//child process
if (pid==0){
printf("nnChild PID is %ldnn", (long) getpid());
int i=0;
if(num==0||num==1){
fact=1;
exit(fact);
}
else{
for(i=1;i<=num;i++){
fact = fact * i;
//printf("fact= %d",fact);
}
printf("n Child Execution Completed...n");
exit(fact);
}
}
else{
wait(&k);
printf(" K= %d",k);
int f=WEXITSTATUS(k);
printf("nNow in parentnn");
printf("nn Factorial of %d is %d ",num,f);
}
}
私は、これらのエラーを取得しています();
main.cpp:20:48:エラー: 'getpid'がこのスコープで宣言されていませんでしたprintf( "nnChild PID is%ldnn"、(long)getpid());
なぜこれはC++とタグ付けされていますか?私には普通のCコードのように見えますか? –