gpt4 book ai didi

c - 使用信号的多进程应用程序

转载 作者:行者123 更新时间:2023-11-30 21:30:36 25 4
gpt4 key购买 nike

使用信号的多进程应用程序。

a.父进程应该创建两个子进程,分别创建和取消链接文件。

b.父进程应注册 SIGUSR1 和 SIGUSR2。这些信号可以从另一个终端中的命令行发送给父级。

c.如果用户从另一个终端向父级发送 SIGUSR1,则父级应依次将此信号发送给子级 1。子级 1 应创建一个文件。

d.如果用户从另一个终端向父级发送 SIGUSR2,则父级应依次将此信号发送给子级 2。子级 2 应取消链接此文件

请谁能帮我如何用c语言来解决这个程序?

提前致谢

最佳答案

试试这个程序,这将解决您的需求。

#include<stdio.h>
#include<stdlib.h>
#include<signal.h>
#include<fcntl.h>
int parent;
int pid_1;
int pid_2;
void signal_handler1(int signo)
{
int pid=getpid();
if(signo == SIGUSR1)
{
if(pid == parent)
kill(pid_1,SIGUSR1);
if(pid == pid_1)
{
int fd=open("/tmp/test",O_CREAT,0755);
close(fd);
}
}
if(signo == SIGUSR2)
{
if(pid == parent)
kill(pid_2,SIGUSR2);
if(pid == pid_2)
unlink("test");
}
}
main()
{
parent=getpid();
signal(SIGUSR1,signal_handler1);
signal(SIGUSR2,signal_handler1);
if((pid_1=fork()) <-1)
exit(0);
else if(pid_1 == 0)
pid_1=getpid();
else
{
if((pid_2=fork()) <-1)
exit(0);
else if(pid_2 == 0)
pid_2=getpid();
}
while(1)
{
}
}

关于c - 使用信号的多进程应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25033542/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com