(一) 编写一个关于进程通信的简单程序,子进程送一串消息给父进程,父进程收到消息后把它显示出来。 要求: 两个子进程分别向管道写一句话: Child process 1 is sending a message! Child process 2 is sending a message! 而父进程则从管道中读出来自两
(一) 编写一个关于进程通信的简单程序,子进程送一串消息给父进程,父进程收到消息后把它显示出来。
要求:
两个子进程分别向管道写一句话:
Child process 1 is sending a message!
Child process 2 is sending a message!
BJXSHOP购物管理系统是一个功能完善、展示信息丰富的电子商店销售平台;针对企业与个人的网上销售系统;开放式远程商店管理;完善的订单管理、销售统计、结算系统;强力搜索引擎支持;提供网上多种在线支付方式解决方案;强大的技术应用能力和网络安全系统 BJXSHOP网上购物系统 - 书店版,它具备其他通用购物系统不同的功能,有针对图书销售而进行开发的一个电子商店销售平台,如图书ISBN,图书目录
0
而父进程则从管道中读出来自两个子进程的消息,显示屏幕上,且父进程要先接收子进程1的消息,在接受子进程2的消息。
#include<stdio.h>
#include<string.h>
#include<unistd.h>
#define SIZE 50
int main()
{
int p1, p2;
int fd[2];
char str[50];
while((pipe(fd)) == -1);
while((p1 = fork()) == -1);
if(p1)
{
while((p2 = fork()) == -1);
if(p2)
{
//parent
wait(0);
read(fd[0], str, SIZE);
printf("%s\n", str);
wait(0);
read(fd[0], str, SIZE);
printf("%s\n", str);
}
else
{
//child2
lockf(fd[1], 1, 0);
sleep(2);
strcpy(str, "Child process 2 is sending messages!\n");
write(fd[1], str, SIZE);
lockf(fd[1], 0, 0);
}
}
else
{
//child1
lockf(fd[1], 1, 0);
sleep(2);
strcpy(str, "Child process 1 is sending messages!\n");
write(fd[1], str, SIZE);
//sleep(2);
lockf(fd[1], 0, 0);
}
}#include<stdio.h>
#include<string.h>
#include<unistd.h>
#define SIZE 50
int main()
{
int p, fd[2];
int i = 0;
char str[SIZE];
while((pipe(fd)) == -1);
while((p = fork()) == -1);
if(p)
{
//parent
lockf(fd[1], 1, 0);
printf("Please input the string:");
scanf("%s", str);
write(fd[1], str, SIZE);
lockf(fd[1], 0, 0);
wait(0);
read(fd[0], str, SIZE);
printf("reversed string is : %s\n", str);
}
else
{
read(fd[0], str, SIZE);
while(str[i] != '\0')
{
if('A' <= str[i] && str[i] <= 'Z')
{
str[i] += 32;
}
else if('a' <= str[i] && str[i] <= 'z')
{
str[i] -= 32;
}
i++;
}
write(fd[1], str, SIZE);
}
return 0;
}
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号