私は2つの子プロセスを作るプログラムを作る必要があります。これらのプロセスは何か(文字列...)をファイルに書き出します。親プロセスは、私が子供のプロセスを作成した をファイルに書き込むしようとしているプロセスを決める必要がありますが、私はこれらの信号で立ち往生していると私はどのようにこの子プロセスがファイルに書き込む
#include <stdio.h>
#include <signal.h>
#include <stdlib.h>
#define READY_SIGNAL SIGUSR1
#define max 1000
int main(int argc, char *argv[]) {
FILE *file;
int o;
char *name;
opterr = 0;
while ((o = getopt(argc, argv, "hp:")) != -1)
switch (o) {
case 'h':
Help();
exit(1);
default:
exit(1);
}
argc -= optind;
argv += optind;
if(argc==0){
printf("file name\n");
scanf("%s",&name);
file=fopen(name,"a+");
if(file != NULL)
{
printf("file created\n");
// fclose(file);
}
else printf("the file does not exist\n");
}
else if(argc>1) {
return(1);
}
else
meno=argv[0];
file=fopen(name,"a");
if(file != NULL){
printf("file created\n");
}
else printf("the file does not exist\n");
pid_t child_pid, child_pid2;
printf ("the main program process ID is %d\n", (int) getpid());
child_pid = fork() ;
if (child_pid != 0) {
printf ("this is the parent process, with id %d\n", (int) getpid());
printf ("the child's process ID is %d\n",(int) child_pid);
}
else {
printf ("this is the child process, with id %d\n", (int) getpid());
exit(0);
}
child_pid2 = fork() ;
if (child_pid2 != 0) {
printf ("this is the parent process, with id %d\n", (int) getpid());
printf ("the child's process ID is %d\n",(int) child_pid2);
}
else
{
printf ("this is the child process, with id %d\n", (int) getpid());
exit(0);
}
return 0;
}
感謝を行うための手掛かりを持っていない
宿題の場合は、そのまま宿題にしてください。あなたの質問は何ですか?あなたは「これらの信号に固執しています」という意味はどうですか?あなたは何をしようとしていますか? –
信号でどこから始めるべきかわかりません... – johnySA