2.1 linux C 进程与多线程入门--(1)进程和程序的区别

进程和程序的区别:

j进程是活动的程序,而程序是一个代码的集合。进程是加载到内存中的程序,而程序没有加载到内存中,只是在磁盘上存储着。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include<sys/types.h>
#include<unistd.h>
#include<stdio.h>
int main()
{
pid_t pid ;
char * message;
printf("fork process staring \n");
pid = fork();
switch(pid)
{
case -1:
perrro("fork failed \n");
exit(1);
case 0:
mesage = "this is the child\n";
n = 5;
break;
default :
message = "this is the parent \n";
n = 3;
break;
}
for(; n>0 ;n-=1
{
puts(message);
sleep(1);
}
exit(0);
}

(1)pid_t 是进程号,是唯一表示进程的id。

(2)pid_t fork(void)函数 包含的头文件:#include<unistd.h>

#include<sys/types.h>

调用fork可以创建一个全新的进程,这个系统调用对当前进程进行复制。在进程表里创建一个新的项目,新项目的许多属性与当前进程是相同的。新进程河源进程几乎一样样的。执行的也是相同的代码,但新进程有自己的数据空间自己的环境等。

(3)程序调用了fork函数的时候被分成了两个进程,。在父进程里,fork函数返回新进程的pid 进程号,新进程则返回0,这个可以作为区分父子进程的一句。

父进程和子进程的执行的代码都和fork.c里的代码一致。但是,fork根据不同进程返回不同的pid,那么父子进程的实际有效代码部分是不同的,下面我只写实际有效的代码:



 

也就是说,进程会根据pid的不同,有选择的执行各自的代码。这个程序将产生两个进程,新进程(子进程)会输出5此,而父进程3此。父进程会在子进程打印完他的全部信息之前推出。

提醒大家一下:源文件虽然只有一个,但是运行的进程是两个,而不是1个。fork()函数在父进程里创建了新的进程,两个进程执行的是相同的代码,即代码是一样的。

转载于:https://www.cnblogs.com/yjds/p/8597454.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/571054.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机一级表格样式在哪儿,word表格样式在哪 word表格样式在哪里

word2007中设置好正文样式怎样设置表格样式1. 打开word(以2007为例)【开始】--> 【样式】&#xff0c;打开样式右下角的小箭头&#xff0c;或者alt shift ctrl S&#xff0c;打开全部式样 2. 在全部式样里&#xff0c;选择你要改的类型&#xff0c;点击该类型右边的下拉箭…

day11_用例执行顺序、跳过用例skip用法

用例执行顺序是按照test后面的字母排序进行的&#xff0c;字母靠前先执行&#xff0c;靠后后执行 import unittestclass My(unittest.TestCase): def test_a(self): print(haha) def test_z(self): print(哈哈哈哈)unittest.main() unittest提供了一些跳过…

计算机一级13点,2013年计算机一级考试MsOffice备考题及答案(13)

(11) 在操作系统中&#xff0c;文件管理的主要功能是A、实现文件的虚拟存取B、实现文件的高速存取C、实现文件的按内容存取D、实现文件的按名存取参考答案&#xff1a; D(12) 下列WINDOW 95桌面上图标的叙述中&#xff0c;错误的是A、所有的图标都可以重命名”B、图标可以重新排…

#和##在宏替换中的作用

#include <stdio.h>#define f(a,b) a##b#define g(a) #a#define h(a) g(a)int main(){ printf("%s/n",h(f(1,2))); printf("%s/n",g(f(1,2))); return 0;} 首先需要了解#和##的意义。 # 将右边的参数做整体的字符串替换。 #define g(a) #a 则g…

计算机辅助设计b实验目的,上海电力学院电路计算机辅助设计1--含有受控源电路辅助分析...

上海电力学院电路计算机辅助设计1--含有受控源电路辅助分析实验三&#xff1a;含有受控源电路辅助分析一、实验目的1. 用回路电流法和节点电压法求解电路中的电流和电压。 2. 掌握线性电路参数的测量的方法。3. 了解四种受控源元件(电流控制的电压源、电流控制的电流源、电压控…

云服务器ECS登陆注意点

使用阿里云控制台&#xff1a;远程连接(管理终端) 登陆Linux(CentOS)密码输入不能使用小键盘输入&#xff0c;只能使用键盘最上排的数字键输入。小键盘输入永远登陆不了。远程用ssh密匙登陆时Linux时&#xff0c;需要确认一下几点。/root/目录的权限是否是550&#xff0c;如果不…

计算机基本运行方式,我今天才知道的电脑运行方式,你知道吗?

计算机首先你必须是系统软件和应用软件的相互的结合&#xff0c;才能更好的开发出你电脑的应用平台&#xff0c;那么其实没有了软件系统&#xff0c;光有这些硬件&#xff0c;他能不能工作&#xff0c;其实是不能工作的电脑也就是废物一台。那么软件这些&#xff0c;就是合理的…

计算机修复画笔结果分析,Photoshop

Photoshop基础:使用修复画笔工具修复画笔工具和修补工具&#xff0c;其实都是基于我们前面所说的图章工具的派生工具&#xff0c;并弥补了图章工具的一些不足。那么图章工具有什么不足之处呢&#xff1f;通过前面的学习我们知道了图章工具对图案的复制是原样照搬的&#xff0c;…

Centos7安装图形桌面

yum groupinstall "GNOME Desktop" "Graphical Administration Tools" #安装 startx #进入图形桌面 转载于:https://www.cnblogs.com/killall007/p/8607905.html

终端到服务器丢包,服务器丢包 ping的时候产生丢包的解决方法

通常有以下几种原因:守望,数据,采集,网络,技术,站长,源码,小说,图片,seo,ALEXA3^ X gu K O1.由于服务器的IIS中运行了非法或者没有独立进程池的原因,找到这个站点,给他一个独立的进程池2.如果服务器上捆绑了一个主机头为空的站点的话,容易造成这个问题,最好把这个主机为空的站点…

centos 默认php 版本太低移到高版本的办法

// centos 默认有php 版本太低转移到高版本的解决办法 php -v 版本低 ln -s /usr/local/php/bin/php /usr/bin/php转载于:https://www.cnblogs.com/zhanghanwen16/p/8610841.html

云服务器太卡,云服务器解决io过高导致的命令卡顿

查看操作系统负载[rootnode-master1Ewao ~]# cat /proc/cpuinfo | grep "process"processor: 0processor: 1processor: 2processor: 3[rootnode-master1Ewao ~]# w15:42:05 up 72 days, 22:09, 1 user, load average: 24.43, 20.18, 18.37USER TTY LOGIN IDLE JCPU P…

服务器的虚拟化配置,怎么配置服务器的虚拟化环境

服务器虚拟化是科技发展的产物&#xff0c;使得在一台服务器上同时执行多个操作系统、提供服务成为可能&#xff0c;优化了企业内部资源&#xff0c;节省成本。服务器虚拟化是IT基础架构得以资源共享的做法&#xff0c;也是未来机房的重要元素之一&#xff0c;那我们怎么配置这…

dubbo实现原理之SPI简介

dubbo采用微内核插件体系&#xff0c;设计优雅&#xff0c;扩展性很强。微内核插件体系是如何实现的呢&#xff1f;想必大家都知道SPI(service provider interface)机制。这种机制的原理是假如我们定义了服务接口标准&#xff0c;可以让厂商无实现。在jdk中&#xff0c;使用Ser…

qq游戏坦大战服务器维护中,高手教你如何解决QQ游戏问题

许多玩QQ游戏的朋友&#xff0c;可能会发现忽然有一天自己的QQ游戏进不去了&#xff0c;无法打开QQ游戏了&#xff0c;就算重装游戏也不行&#xff0c;出现“加载DLL失败”的提示。现将各种情况的DLL文件加载失败解决办法收集起来&#xff0c;希望能对大家有所帮助。1.加载cnsm…

华硕笔记本没有无线服务器,华硕笔记本连不上无线网络怎么解决

可能还有些网友不太清楚关于华硕笔记本连不上无线网络的问题&#xff0c;下面就由学习啦小编给你们介绍华硕笔记本连不上无线网络的解决方法吧&#xff0c;希望能帮到大家哦!华硕笔记本连不上无线网络的解决方法一&#xff1a;1、首先我们来检测是否是无线路由器的问题。为了确…

Maven知识点整理

Maven不仅是依赖管理工具&#xff0c;准确来说是一个项目管理工具&#xff0c;贯穿了整个项目生命周期&#xff0c;编译&#xff0c;测试&#xff0c;打包&#xff0c;发布...依赖是使用Maven坐标来定位的&#xff0c;而Maven坐标 主要 由GAV&#xff08;groupId, artifactId, …

企业案例(二):增量恢复案例

1、环境准备 条件: 1.具备全量备份&#xff08;mysqldump&#xff09;。 2.除全量备份以外&#xff0c;还有全量备份之后产生的的所有binlog增量日志。 1.1、建立数据库和表 CREATE DATABASE dadong; USE dadong; CREATE TABLE test (id int(4) NOT NULL AUTO_INCREMENT,name c…

gdc服务器维修公司,gdc服务器阵列架坏了

gdc服务器阵列架坏了 内容精选换一换本章节指导用户批量创建4块云硬盘&#xff0c;并挂载至云服务器。进入云硬盘页面。关于创建云硬盘的详细操作&#xff0c;请参见“云硬盘用户指南”。本示例为批量创建4块云硬盘&#xff0c;具体参数如图1所示。云硬盘规格支持任意用户(root…

Python3中遇到UnicodeEncodeError: 'ascii' codec can't encode characters in ordinal not in range(128)...

现象 打印任何一种包含有中文的对象&#xff0c;字典、列表、DataFrame、或字符串。比如&#xff1a; print(中文) 控制台报错&#xff1a; Traceback (most recent call last):File "printcn.py", line 1, in <module>print(\u4e2d\u6587) UnicodeEncodeError…