linux下c语言编程两个进程怎么写

1.Linux下C语言 编写程序创建3个进程,三个进程分别完成不同的事情

两次建立子进程就行了啊 ~~

父子孙:

pid_t pid;

pid = fork();

//进程地址空间独立

if(pid < 0) {

}

if(pid == 0) {

pid = fork();

if(pid < 0) {

}

if(pid == 0) {

printf("789");//孙

}

if(pid > 0){

printf("456");//子

}

}

if(pid > 0){

printf("123");//父

}

发散思维即可

2.写一个linux下写个关于c语言的双守护进程,就是监视一个进程,当其

可以分三步来做: 做两个简单的守护进程,并能正常运行监控进程是否在运行启动进程综合起来就可以了,代码如下:被监控进程thisisatest.c(来自):#include#include#include#include#include#include#include#includevoid init_daemon(){int pid;int i;pid=fork();if(pid<0) exit(1); //创建错误,退出else if(pid>0) //父进程退出 exit(0);setsid(); //使子进程成为组长pid=fork();if(pid>0) exit(0); //再次退出,使进程不是组长,这样进程就不会打开控制终端else if(pid<0) exit(1);//关闭进程打开的文件句柄for(i=0;i=0) { time(&t); fprintf(fp,"current time is:%s\n",asctime(localtime(&t))); //转换为本地时间输出 fclose(fp); } } return;}监控进程monitor.c:#include#include#include#include#include#include#include#include#include#include#include#define BUFSZ 150void init_daemon(){int pid;int i;pid=fork();if(pid<0) exit(1); //创建错误,退出else if(pid>0) //父进程退出 exit(0);setsid(); //使子进程成为组长pid=fork();if(pid>0) exit(0); //再次退出,使进程不是组长,这样进程就不会打开控制终端else if(pid<0) exit(1);//关闭进程打开的文件句柄for(i=0;i=0) { count = does_service_work(); time(&t); if(count>0) fprintf(fp,"current time is:%s and the process exists, the count is %d\n",asctime(localtime(&t)), count); //转换为本地时间输出 else { fprintf(fp,"current time is:%s and the process does not exist, restart it!\n",asctime(localtime(&t))); //转换为本地时间输出 system("/home/user/daemon/thisisatest"); //启动服务 } fclose(fp); } } return;}具体CMD命令:cc thisisatest.c -o thisisatest./thisisatestcc monitor.c -o monitor./monitortail -f testfork3.log -- 查看日志。

3.linux下c语言pipe无名管道 main函数创建两个进程p1和p2,p1把一个文

#include <stdio.h>

main()

{

int i,r,p1,p2,fd[2];

char buf[50],s[50];

pipe(fd); //创建匿名管道,fd[0]为读端,fd[1]为写端

while((p1=fork())==-1); //创建子进程P1,直至成功为止(p1!=-1)

if(p1==0) //子进程P1执行逻辑

{

lockf(fd[1],1,0); //锁定管道写端,保证写入数据的完整性

sprintf(buf,"child process P1 is sending messages!\n"); //在buf中填入准备写入管道的信息数据

printf("child processP1!\n"); //打印“子进程P1正在运行”

write(fd[1],buf,50); //向管道写端fd[1]写入buf中的数据,写完后该数据即可以从读端fd[0]读出

sleep(5); //睡眠5秒

lockf(fd[1],0,0); //解锁管道写端

exit(0); //子进程P1退出

}

else //主进程的执行逻辑

{

while((p2=fork())==-1); //创建第二个子进程P2

if(p2==0) //子进程P2的执行逻辑

{

lockf(fd[1],1,0); //锁定管道写端,保证数据写入完整

sprintf(buf,"child process P2 is sending messages!\n"); //在buf中填入准备写入管道的信息数据

printf("child processP2!\n"); //打印“子进程P2正在运行”

write(fd[1],buf,50); //向管道写端fd[1]写入buf中的数据,写完后该数据即可从读端fd[0]读出

sleep(5); //睡眠5秒

lockf(fd[1],0,0); //解锁管道写端

exit(0); //子进程P2退出

}

//以下为主进程执行逻辑

wait(0); //等待某个子进程退出

if(r=read(fd[0],s,50)==-1) //从管道读端fd[0]读取P1或者P2写入的数据(视哪个子进程抢先执行到lockf函数)

{

printf(:can't read pipe\n"); //读取失败,打印错误信息

}

else

{

printf(:%s\n",s); //打印出读到的信息数据

}

wait(0); //等待第二个子进程退出

if(r=read(fd[0],s,50)==-1) //从管道读端fd[0]读取出P1或者P2写入的数据(视哪个子进程后执行到lockf函数)

{

printf(:can't read pipe\n"); //读取失败,打印错误信息

}

else

{

printf(:%s\n",s); //打印读取到的信息数据

}

exit(0); //主进程退出

}

}

总的说来,就是主进程创建了两个子进程P1、P2,这两个子进程分别向管道写入了一行文字,然后主进程从管道另一端将这两行文字读出并打印出来

由于进程的并发执行性,哪个子进程的信息先写到管道是随机的,因此该程序每次运行的输出可能并不相同,两行文字之间可能会相互交换

4.在linux里用C语言编写创建进程、撤销进程,我是新手,求帮助,最好

前面两人说的明显是线程的创建好不好?

用 pid_t fork(void);创建一个子进程

共享数据段和代码段,所以感觉上是会执行两次.

可以在父进程中添加一个wait函数,以便于子进程先退出,再父进程退出.

或者 pid_t vfork(void) 这也是创建一个进程,和前者区别不讲了.

撤销进程的话,在程序里面可以自己从代码角度去退出,也可以在两个进程运行时,通过命令 ps

来查看进程ID,,,在程序里面也可以获取进程的pid,ppid,可以直接在函数里面使用kill(),来终止进程.

5.到底怎么在Linux里编写c程序啊

在linux下通常使用gedit或vim直接编写.c程序,然后通过gcc指令编译。以Ubuntu系统为例,详细过程如下:

1、进入桌面Temp文件夹

2、右键新建空白文件

3、将文件命名为hello.c

4、进入hello.c,开始编写代码(默认gedit为编辑器)

5、编写代码,保存退出

6、点击右列“终端”,或者直接Ctrl+Alt+T通过快捷组合键进入终端

7、进入hello.c所在目录,通过gcc进行编译、链接、生成可执行文件hello,命令为gcc -o hello hello.c。

8、执行(可执行)文件hello,命令为./hello。

参考资料:

GCC——百度百科

Linux常用命令——百度百科

6.linux父进程创建两个子进程

#include"stdio.h"

#include"stdlib.h" //exit包含在stdlib.h头文件中

#include"unistd.h"

int main(void)

{

pid_t pid1,pid2;

pid1=fork();

switch(pid1)

{

case 0: //进程创建成功,返回值为0

printf("b"); //子进程1创建成功,输出b

break;

case -1:

printf("Process creation failed\n");//子进程创建失败,输出错误信息

break;

default:

printf("a");//此时执行父进程,输出a

sleep(1);

exit(0);

break;

}

pid2=fork();

switch(pid2)

{

case 0: //进程创建成功,返回值为0

printf("c"); //子进程2创建成功,输出c

break;

case -1:

printf("Process creation failed\n");//子进程创建失败,输出错误信息

exit(0);

break;

default:

printf("a");//此时执行父进程,输出a

//sleep(1);

exit(0);

break;

}

exit(0);

}

linux下c语言编程两个进程怎么写

转载请注明出处育才学习网 » linux下c语言编程两个进程怎么写

知识

读书讨论报告怎么写

阅读(267)

本文主要为您介绍读书讨论报告怎么写,内容包括读书报告怎么写,读书的报告怎么写,读书报告怎么写。读书报告的内容可包括:1. 作者简介、内容概要; 2. 本书在表达(如用一问一答的形式)、处理等方面的特别之处;3. 书中叫人深刻难忘的

知识

css样式导航按钮页面当前状态怎么写

阅读(238)

本文主要为您介绍css样式导航按钮页面当前状态怎么写,内容包括怎么写css能使导航保持被点击的状态(页面不需要跳转)js的也行,本,css导航被选中的状态怎么写,怎么用css样式来写导航按钮就是首页关于我们之类的鼠标移动到某位。<a href="#" class

知识

http协议服务器端怎么写

阅读(250)

本文主要为您介绍http协议服务器端怎么写,内容包括如何写一个简单的http服务器,我想用http协议登录一个远程服务器,请问http的格式应该怎么写,HTTP协议。这是一个真实的HTTP请求的例子,其中每一行都以\r\n结尾。由于我们写的是简单的服务

知识

cad中怎么写罗马数字

阅读(256)

本文主要为您介绍cad中怎么写罗马数字,内容包括在CAD中写入罗马数字怎么写入,在CAD中写入罗马数字怎么写入,autocad罗马数字罗马数字怎么输。电脑打开AutoCAD。

知识

钓星星的作文怎么写二年级

阅读(215)

本文主要为您介绍钓星星的作文怎么写二年级,内容包括二年级看图写话钓星星,夜空的星星二年级作文,小学二年级作文月亮和星星怎么写。再过几天,我们宇宙学校就要举行作文比赛了。我整天待在教室里研究作文。好朋友佳贝尔对我说:“咱俩去银河里

知识

美亚直邮地址怎么写

阅读(234)

本文主要为您介绍美亚直邮地址怎么写,内容包括美亚填写直邮地址怎么填都不对,美国亚马逊直邮中国信息地址怎么填,美亚直邮的地址,是填写拼音还是中文。如果你是想填写美亚的直邮地址的话,因为在国内都是国内的邮递员

知识

沿字用小篆怎么写

阅读(228)

本文主要为您介绍沿字用小篆怎么写,内容包括仔仔细细用小篆怎么写,(你)字用小篆怎么写,拱字用小篆怎么写。仔仔细细 小篆:

知识

文明礼仪之星申请书怎么写

阅读(314)

本文主要为您介绍文明礼仪之星申请书怎么写,内容包括文明礼仪之星申请书,要100字左右,急求~~~~~,文明之星申报材料写法,争当文明礼仪之星,怎么写事迹材料急。我国是一个文明古国,我们从小事听着孔融让梨的故事长大的,所以知道尊敬师长,爱护弟

知识

毕业论文提纲结论怎么写

阅读(308)

本文主要为您介绍毕业论文提纲结论怎么写,内容包括毕业论文结论怎么写,毕业论文提纲怎么写,求毕业论文的结论部分怎么写。原发布者:莫羽郁94以下内容粘贴自百度知道:论文的结论是最终的、总体的结论,不是正文中各章小结的简单重复。结论应该观

知识

李丹小篆怎么写

阅读(270)

本文主要为您介绍李丹小篆怎么写,内容包括陈莹的小篆怎么写要图片的,请问杨涵的小篆怎么写,刘昕这个字小篆怎么写。李 小篆:

知识

13485体系审核通知怎么写

阅读(246)

本文主要为您介绍13485体系审核通知怎么写,内容包括ISO13485都审核什么,13485审核员,iso13485体系的计算机系统确认程序怎么写。ISO13485是一份独立的标准,不是ISO9001标准在医疗器械行业中的实施指南,两者不能兼容。 这从新标准的标题看出来

知识

java从抽象类派生出类怎么写

阅读(271)

本文主要为您介绍java从抽象类派生出类怎么写,内容包括在JAVA中怎么理解“从抽象体派生”,高手帮忙设计一个java程序急用题目如下定义一抽象类Column,然后,java定义一个抽象类Person在其中定义一个抽象函数pay(),然后从。import java.lang.S

知识

烤肉韩文怎么写

阅读(274)

本文主要为您介绍烤肉韩文怎么写,内容包括韩式烧烤韩文怎么写,韩式烤肉用韩文怎么写,烤肉专门店这五个字韩文怎么写。特色烧烤특색 불고기。特色烧烤配方:肉串类:(有两种配方) 5公斤鲜肉计应加入香料的份量。配方1:鲜疆羊肉串料(武汉产)1.5包,味精(

知识

怎么列第三人写诉讼状

阅读(324)

本文主要为您介绍怎么列第三人写诉讼状,内容包括民事起诉状中第三人如何列明,民事诉讼第三人参与诉讼怎么写起诉书,民事诉状可否直接列第三人。原告在民事起诉状中可以根据案件实际情况列被告和第三人。截止2019年2月,根据《民事诉讼法》第

知识

怎么看一个网站是用什么语言写的

阅读(226)

本文主要为您介绍怎么看一个网站是用什么语言写的,内容包括怎样看一个网站是用什么语言写的,怎么看一个网站是用什么语言来写的呢,怎么看一个网站是用什么语言编写出来的。首先看他的网页后缀 比较明显的是 asp aspx php jsp do这些 当然这

知识

怎么查看网站语言写的

阅读(199)

本文主要为您介绍怎么查看网站语言写的,内容包括怎么查看一个网站是用什么语言写的,怎么看一个网站是用什么语言写的,怎么知道网站用什么语言写的。判断网站使用的语言一般为:1.查看网站后缀名,也就是看网页的后缀名,如:asp的是用vbscript,aspx

知识

寄快递的语言怎么写

阅读(242)

本文主要为您介绍寄快递的语言怎么写,内容包括快递宣传语怎么写最新,寄快递怎么写地址,快递单上给快递员的话语怎么写。速递界的赤兔马。 2、使命安然

知识

语言赏析怎么写

阅读(1221)

本文主要为您介绍语言赏析怎么写,内容包括句子赏析怎么写,语言赏析的方法,如何赏析文章语言。语言特色的赏析 1,句子语言生动、优美而又亲切自然,充满文雅的书卷气,特别是多用比喻拟人的修辞手法,生动形象地表现了……给我们展现出一幅

知识

简历中的语言能力怎么写

阅读(332)

本文主要为您介绍简历中的语言能力怎么写,内容包括简历中语言水平一栏怎么填,个人简历怎么写语言能力,简历上的语言能力都可以写什么。根据自己的实际情况填写了,如,普通话,你能够熟练的交流,并且吐字清晰不出错,就选“熟练”;如,你的英语,可以很好

知识

幼儿我想长大了语言怎么写

阅读(246)

本文主要为您介绍幼儿我想长大了语言怎么写,内容包括幼儿园中班语言《我长大了》优秀公开课教案怎么写,幼儿园中班语言《我长大了》优秀公开课教案怎么写,孩子成长的语言怎么写。幼儿园大班语言教案:我长大了设计思路:随着幼儿生理的不断成熟

知识

c语言怎么写测试代码

阅读(315)

本文主要为您介绍c语言怎么写测试代码,内容包括用C语言编写一个简单的计算器1,C语言试验报告该怎么写,C语言怎么编写代码。#include<stdio.h>int main() {double num1 = 0; //输入1double num2 = 0;

知识

真美这两个字的甲骨文怎么写

阅读(297)

本文主要为您介绍真美这两个字的甲骨文怎么写,内容包括美字甲骨文怎么写,美字甲骨文怎么写,“书法”这两个字甲骨文怎么写谢谢。“美”的象形文、甲骨文的写法美,甲骨文=(像花枝或草叶)+(大,人),表示头戴花草饰物。有的甲骨文把“大”(人)写成“夫”

[/e:loop]