linux上机实验5,Linux实验五:Linux环境下的C语言编程

Linux实验五:Linux环境下的C语言编程

Linux实验五:Linux环境下的C语言编程

文章目录

一、实验目的:

二、实验要求

三、实验内容

1、编写一段C语言程序使其完成:父进程创建两个子进程,每个进程都在屏幕上显示自己的进程ID号。

2、上机调试下面的程序,观察运行结果,分析原因。

3、利用两个管道进行双向通信,实现父子进程协作把整数x从1加到10。

4、利用消息队列实现父子进程的通信。父进程创建消息队列,并向消息队列发送消息;子进程接受消息;父进程等待子进程接收消息后删除消息队列。

一、实验目的:

1、学会用系统调用和库函数进行编程

2、加深对进程概念的理解,明确进程和程序的区别。

3、进一步认识并发执行的实质。

4、分析进程竞争资源现象,学习解决进程互斥的方法。

5、了解Linux系统中进程通信的基本原理。

二、实验要求

1、用fork( )创建进程,观察进程的并发执行

2、使用管道、消息队列机制进行进程间通信

三、实验内容

运行结果示例:

# ./forktest

this is child1:16602

this is child2:16603

this is parent:16601

fbeb1b4523868df7ace33308e8e1f550.png

987f541156fedaa18b208bb489462b0a.png

#include

#include

int glob=3;

int main()

{

pid_t pid;

int loc=3;

printf("befor fork():glob=%d,loc=%d\n", glob, loc);

if ((pid=fork()) < 0)

{

printf("fork() error\n");

exit(0);

}

else if (pid == 0)

{

glob++;

loc--;

printf("child:glob=%d, loc=%d\n", glob, loc);

else

{

printf("parent:glob=%d, loc=%d\n", glob, loc);

exit(0);

}

return 0;

}

9033639b4379e9f948480f005772454b.png

fca5fde92df7e752b526143f1fa89b6b.png

fork()后会有两个并发进程执行,子进程赋值了父进程的数据段,包括全局变量。父进程执行进入pid>0的情况,子进程进入pid==0的情况,分别做glob和loc的运算以及输出。

运行结果示例:

# ./pipetest

child 5938 read: 1

parent 5937 read: 2

child 5938 read: 3

parent 5937 read: 4

child 5938 read: 5

parent 5937 read: 6

child 5938 read: 7

parent 5937 read: 8

child 5938 read: 9

parent 5937 read: 10

·说明:5938和5937分别是子进程和父进程的pid

6a625bd3cc1f7b74c78bac53223d8895.png

03dd559fa41ef2dd2c0300749dd638b5.png

运行结果示例:

# ./msgtest

Parent:Send to the message queue successfully!

The message sent is :This is the input!

Child:Receiving from the message queue:This is the input!

06ff6c9c99f5f0fbd1e1e1e2d9bce614.png

0d38277232c9d3919937d207e200b3c9.png

Linux实验五:Linux环境下的C语言编程相关教程

Oracle实验四 SQL语言

Oracle实验四 SQL语言 实验四 SQL语言 掌握在Oracle中添加示例方案的方法 熟练掌握SQL语言的查询功能 掌握SQL Plus常用命令 一、 需要访问HR示例方案中的表,如果机器上没有该示例方案,则运行相关包和相应配置装入HR方案。如果已有HR方案,则跳过该步骤。 将

python环境selenium的安装和配置以及常见错误的解决方法

python环境selenium的安装和配置以及常见错误的解决方法 1. 安装方法 selenium包的安装有以下几个方式: 通过命令行安装,语法为 pip install selenium[==版本号] ,其中版本号是选填的,比如安装版本号为2.48.0的selenium,则命令为 pip install selenium==2

Linux系列之CentOS 7--笔记2:基本的命令的使用(1)

Linux系列之CentOS 7--笔记2:基本的命令的使用(1) 本笔记基于“狂神说Linux”强烈推荐看下视频,有助于理解Linux,但这些也仅仅是入门,根据自己的需求来吧。 目录 目录管理 绝对路径、相对路径 处理目录的常用命令 ls (列出目录) cd (切换目录) pwd ( 显

Linux:部署Kubernetes web管理界面———Dashboard

Linux:部署Kubernetes web管理界面———Dashboard 作为Kubernetes的Web用户界面,用户可以通过Dashboard在Kubernetes集群中部署容器化的应用,对应用进行问题处理和管理,并对集群本身进行管理。 通过Dashboard,用户可以查看集群中应用的运行情况,同时也

ANTLR4 配置环境变量

ANTLR4 配置环境变量 1、下载ANTLR,下载最新版本 保存到指定路径,配置环境变量,如:E:\software\antlr4 2、配置环境变量 .;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;E:\software\antlr4\antlr-4.8-complete.jar; 编辑path,添加路径 添加bat文件

linux(centos7) 上安装chrome和chromedriver

linux(centos7) 上安装chrome和chromedriver 爬虫工作中,难免会遇到时间紧迫而且网站有一定的反爬虫措施,这时候就需要用到selenium+chrome+chromedriver来进行数据抓

zzuli第四次javaweb实验

zzuli第四次javaweb实验 页面较为粗糙,毕竟刚学两个月,也没有进行封装。时间有限。此代码仅供交流学习,严禁抄袭!!!代码可能存在一些bug,dl可以通过评论联系我。 MysqlManger.java package link;import java.sql.Connection;import java.sql.DriverMana

64位加法——计算机组成原理实验1

64位加法——计算机组成原理实验1 实验原理图 实验步骤 因为一次最多输入32位数,而要实现64位的加法器,我们采用32位加法器拼接的方式 在输入的时候需要把两个64位数分成高32位和低32位分别输入。 在运算的过程中,先对两个64位数的低32位进行运算,生成低32

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值