好的,我發佈了我的代碼。我解釋了之前我想要做的事情。發佈我的c文件,我希望你能找到我的錯誤。謝謝 這是myfork.c我在調用c文件時如何添加參數
#include <stdio.h>
#include <unistd.h>
int main(int argc,char *argv[])
{
int pid;
int s;
int waitPid;
int childPid;
pid = fork();
if (pid == 0 && pid != -1) {
childPid = getpid();
printf("Child Process ID:%d, Parent ID:%d, Process "
"Group:%d\n",childPid,getppid(),getgid());
execl("/bin/cat","cat","-b","-t","-v",argv[1],(char*)NULL);
} else {
printf("Original Process ID:%d, Parent Is:%d, Process Group "
"Is:%d\n",childPid,getppid(),getgid());
waitPid = waitpid(childPid,&s,0);
}
return 1;
}
這是test.c的
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
int main(void){
pid_t fork_return;
fork_return = fork();
if (fork_return==0) {
printf("In the CHILD process\n");
} else {
printf("In the PARENT process\n");
}
return 0;
}
./mywork blahblah – 2012-02-03 02:50:36
嗯,我嘗試過,但它給了這樣的事情: 原始進程ID:0,家長是:11875,進程組:12024 子進程ID:12977,父ID:12976,流程組:12024 和這裏的test.c文件的代碼 Original ID:0我認爲我做錯了什麼 – 2012-02-03 02:57:20
和輸出必須是這樣的:第一個子進程的信息,然後test.c文件的索引並在最後,父母的過程信息(原始過程) – 2012-02-03 03:00:09