Хорошо, я отправляю свой код. Я объяснил, что я хочу сделать раньше. Проводя оба моих файла 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 –
Хмм Я попробовал это, но это дает что-то вроде этого: Оригинальный идентификатор процесса: 0, родитель: 11875, группа процессов Является: 12024 Child Process ID: 12977, Родитель ID: 12976, Процесс Группа: 12024 и вот код файла test.c Original ID: 0 Я думаю, что я что-то делаю неправильно –
И результат должен быть примерно таким: Первая информация о детском процессе, а затем индекс файла test.c и в конце, информация о родительском процессе (исходный процесс) –