LInux C进程控制作业——1

Linux C 中的进程 简要介绍进程部分相关概念,相关命令以及相关函数等,分析了父子进程访问同一资源问题。 阅读详情

题目如下:

u创建子进程

u在子进程中打开文件file1,写入自己的“班级_姓名_学号”,

u父进程读取file1中的内容,并且打印显示。

u在父进程中获取已经结束的子进程的状态信息,打印该信息,并且打印结束的子进程的进程号。

代码如下:

#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
#include<sys/stat.h>
#include<sys/types.h>
#include<fcntl.h>
#include<sys/wait.h>


int main()
{
 int pid = fork();
 int fd = open("1.txt",O_RDWR|O_CREAT,S_IRWXU|S_IRWXG|S_IRWXO);
 if(pid == 0)
 {
   char str1[15] = "CLASS_NAME_ID";
   int bits1 = write(fd,str1,15);
   if(bits1 == -1)
   printf("write error");
 }
 else if(pid > 0)
 {
  sleep(1);
  char str2[15];
  int bits2 = read(fd,str2,15);
  if(bits2 == -1)
  printf("read error");
  else
  for(int i=0;i<15;i++)
  printf("%c",str2[i]);
  printf("\n");

  pid_t pid1;
  int status,i;
  pid1 = wait(&status);
  if(WIFEXITED(status))
  i = WEXITSTATUS(status);

 printf("Child's pid=%d .exit status=%d\n",pid1,i);

  printf("pid:%d\n",pid);
 }
 else
 {
  printf("fork error\n");
 }
 return 0;
}

学习目标有以下:

1,利用fork()函数创建子进程;

2,清楚处于子父进程的区别,并处理不同的代码段;

3,wait()函数与其相关宏的操作,得到子进程的相关信息;

Linux进程间关系之进程组,作业,会话与作业控制。 本片博客用到的相关指令fg,bg,jobs,ps等可自行查阅。进程组每个进程除了有一个进程ID之外还有一个进程组ID。每个进程都属于一个进程组。进程组是一个或多个进程的集合。每个进程都有一个唯一的进程组ID。每个进程都有一个组长进程。 组长进程标志:其所属进程组ID等于其进程ID。 进程组就是进程的集合,这些进程并不是孤立的,他们彼此之间或者存在父子、兄弟关系,或者在功能上有相近的联系。每个进程 阅读详情

相关推荐

Linux下的终端和作业控制

一、进程间的关系进程间的三种关系:进程组、作业和会话。 1、进程组 每个进程除了有一个进程ID之外,还属于一个进程组。进程组是一个或多个进程的集合。通常,它们与同一作业相关联,可以接收来自同一终端的各种信号。每个进程组有一个唯一的进程组ID。每个进程组都可以有一个组长进程(该组进程的第一个,组成员ID等于组长ID)。组长进程的标识是,其进程组ID等于其进程ID。组长进程可以创建一个进程组,创建该

snow_5288的博客 2703

C语言 操作系统 进程控制

一、进程控制 ●基本要求:模拟操作系统内核对进程的控制和管理:包括进程的创建和撤 销、进程状态的切换和简单的内存空间管理。 内容 模拟触发进程状态转换的事件:采用键盘控制方法来模拟触发进程状态切换的事件(例如输入 1 代表创建新进程、2 执行进程时间片到、3 阻塞 执行进程、4 唤醒第一个阻塞进程、5 终止执行进程),实现对应的控制程序。 数据结构 定义管理每个进程的数据结构 PCB:包含进程名称、队列指针、分配的物理内存区域(基址和长度)。每创建一个进程时,需要为其创建 PCB 并 分配空 闲内存空间,对

li1441853031的博客 6084

Linux下的多进程编程初步

多线程程序设计的概念早在六十年代就被提出,但直到八十年代中期,Unix系统中才引入多线程机制,如今,由于自身的许多优点,多线程编程已经得到了广泛的应用。本文我们将介绍在Linux下编写多进程和多线程程序的一些初步知识

C语言-进程控制编程

一篇学懂多进程编程

qq_55869380的博客 1767

Linux下多线程及多进程及同步与互斥编程详细介绍

Linux下多线程及多进程及同步与互斥编程详细介绍

进程控制 fork函数的使用等

系统调用fork( ), exec系列函数,exit( ), wait( )的功能和实现过程 使用系统调用fork( )创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示字符’a’;子进程分别显示字符’b’和’c’。

linux进程控制-exec系列

说是exec系统调用,实际上在Linux中,并不存在一个exec()的函数形式,exec指的是一组函数,一共有6个,分别是: #include int execl(const char *path, const char *arg, ...);int execlp(const char *file, const char

积累与分享 608

linux下用fork()函数实现多进程调用带来的一些思考

在文档中针对一事例程序进行了分析讲解。该事例程序属多进程调用小程序,采用了系统调用函数fork()进行子进程的调用。在该文档中介绍了fork()调用的相关细节及注意点以及父子进程段的关系。并将程序运行后输出到屏幕结果与输出重定向到文件后的结果进行比较分析,给出了存在差异的原因,这里主要涉及到了printf()输出缓冲机制问题。并在分析基础上给出了解决办法。

linux -exec簇函数

/** exec 函数族 */ /** * exec 函数族就提供了一个在进程中启动另一个程序执行的方法。它可以根据指定的文件名或 * 目录名找到可执行文件,并用它来取代原调用进程的数据段、代码段和堆栈段,在执行完之后,原调用进 * 程的内容除了进程号外,其他全部被新的进程替换了。另外,这里的可执行文件既可以是二进制文件,也 * 可以是 Linux 下任何可执行的脚本文件。 * * 在 Linux 中使用 exec 函数族主要有两种情况。 *  当进程认为自己不能再为系统和用户做出任

baidu_39594043的博客 298

Linux进程操作fork()等函数的应用

Linux系统编程的进程操作,C语言,明晰子进程的创建结构

从Si3N4到SiNx:一文搞懂芯片制造中氮化硅的化学式玄机(附工艺参数影响)

本文深入探讨了芯片制造中氮化硅(SiNx)化学式的调控艺术,揭示了从Si3N4到SiNx的转变如何影响材料性能。通过分析PECVD和PVD工艺参数对x值的精确调控,以及x值对电学和机械性能的影响,为半导体制造提供了实用的工艺优化策略。

weixin_30776273的博客 190

Linux-进程、进程组、作业、会话、控制终端详解

From:http://www.cnblogs.com/JohnABC/p/4079669.html Linux进程优先级的处理--Linux进程的管理与调度(二十二):http://blog.youkuaiyun.com/gatieme/article/details/51719208 进程 、进程组、会话、控制终端之间的关系:http://blog.csdn...

墨鱼菜鸡 1467

PINN——加入物理约束的神经网络

【摘要】 基于物理信息的神经网络(Physics-informed Neural Network, 简称PINN),是一类用于解决有监督学习任务的神经网络,它不仅能够像传统神经网络一样学习到训练数据样本的分布规律,而且能够学习到数学方程描述的物理定律。与纯数据驱动的神经网络学习相比,PINN在训练过程中施加了物理信息约束,因而能用更少的数据样本学习到更具泛化能力的模型。本文主要解析这种神经网络以...

qq_39444290的博客 4582

linux系统编程之进程(五):终端、作业控制与守护进程

一、终端的概念 在UNIX系统中,用户通过终端登录系统后得到一个Shell进程,这个终端成为Shell进程的控制终端(Controlling Terminal),控制终端是保存在PCB中的信息,而我们知道fork会复制PCB中的信息,因此由Shell进程启动的其它进程的控制终端也是这个终端。默认情况下(没有重定向),每个进程的标准输入、标准输出和标准错误输出都指向控制终端,进程从标准输入读也就是

Meditation 6772

Colmap中 patchmatch源码

惊世骇俗的Colmap PatchMatch源码 500多行,简明易懂 先了解PatchMatch的options: max_image_size: 任一维度的最大图像尺寸 gpu_index: gpu的下标 depth_min,depth_max: 随机采样的深度范围 window_radius:用于计算NCC(两图片的归一化互相关),NCC的计算需要用到 win_size. 图像匹配 | NCC 归一化互相关损失 | 代码 + 讲解 - 知乎 (zhihu.com) window_step: 用.

qq_24884193的博客 2209

射频功率放大器设计实战:从理论到Layout的全流程解析

本文以一款40W、960MHz LDMOS功率放大器为例,系统解析了从理论分析、仿真设计到版图实现的射频功率放大器设计全流程。内容涵盖AB类放大器选型、核心指标定义、稳定性分析、Load-Pull/源牵引仿真、史密斯圆图匹配、偏置网络设计,以及最终的谐波平衡仿真与版图电磁验证,为工程师提供了一套从理论到实践的完整设计方法论。

weixin_29266007的博客 248

08.【网络】Linux进程组、会话、作业控制与守护进程核心知识点 - 进程在终端中到底是怎样组织的

本文介绍了Linux系统中的进程组、会话和作业控制概念。进程组是一个或多个进程的集合,由组长进程管理;会话则是多个进程组的集合,通过setsid函数创建。控制终端与会话相关联,前台进程组接收终端输入信号。作业是用户启动的任务进程集合,可通过作业号进行管理,支持挂起(Ctrl+Z)和恢复(fg/bg)操作。这些机制共同构成了Linux系统的进程管理和作业控制基础。

恢弘志士之气,不宜妄自菲薄 1229

星网宇达Newton-M2设备安装及配置

主要介绍了星网宇达Newton-M2设备的配置过程

weixin_49353445的博客 2675

Linux任务管理与守护进程

文章目录任务管理进程组概念作业概念会话概念相关操作前台进程&后台进程jobs、fg、bgps命令查看指定的选项守护进程 任务管理 进程组概念 每个进程除了有一个进程ID之外,还属于一个进程组,进程组是一个或多个进程的集合。 通常,它们与同一作业相关联,可以接收来自同一终端的各种信号。每个进程组有一个唯一的进程组ID。每个进程组都可以有一个组长进程。组长进程的标识是,其进程组ID等于其进程ID。组长进程可以创建一个进程组,创建该组中的进程,然后终止。 需要注意的是,只要在某个进程组中有一个进程存在

2021dragon的博客 1万+

手把手教你用HI3516CV610搭建智能安防摄像头(附完整开发资料)

本文详细介绍了基于海思HI3516CV610 SOC搭建智能安防摄像头的完整开发流程,包括硬件选型、系统架构设计、开发环境搭建、智能分析功能开发及系统调优。通过实战案例,展示了如何利用内置NPU实现人形检测和异常行为分析,并提供了量产测试方案,帮助开发者快速完成智能摄像头项目。

backprop5master的博客 539

基于STM32L4XX 、HAL库的TMP144YFFR数字温度传感器驱动应用C语言程序设计

define TMP144_ADDRESS 0x00 // 默认为全局地址,用于单器件或MDA命令。#define TMP144_CMD_READ_TEMP 0x00 // 读取温度寄存器命令。if (temp_raw & 0x800) { // 判断第11位(符号位)

PP_Cottage的博客 91

【Linux】终端,进程组,作业,会话及作业控制

终端概念       在UNIX系统中,用用户通过终端登录系统后得到一一个Shell进程,这个终端成为Shell进程的控制终端 (Controlling Terminal),控制终端是保存在PCB中的信息,而我们知道fork会复制PCB中的信息,因此由Shell进程启动的其它进程的控制终端也是这个终端。        默认情况 下(没有重定向),每个进程的标准输入、标准输出和标准错误输出都指向控制

lixungogogo的博客 5892

第110章 PCL PointCloudFusing 点云融合重建详细讲解

点云融合是指将多个不同视角、不同位置、不同传感器获取的点云数据进行合并,得到一个更加完整、准确的三维模型。多视角扫描:从多个相机或传感器获取点云数据,需要将这些数据融合成一个统一的三维模型。传感器融合:例如将激光雷达(LiDAR)点云与相机的图像数据融合,以便获得更高质量的三维重建。动态场景重建:动态环境中的物体,点云数据不断更新,如何平滑地融合这些点云是一个重要课题。点云融合的目标是将不同来源的点云数据准确地合并,消除冗余,减少噪声,并提高整体的点云密度和精度。

yumeiguo的博客 501

Linux操作系统笔记——进程和作业

目录一、进程(一)进程的概念(二)进程的生命周期(三)获取进程信息(ps)(四)暂停进程(sleep)(五)终止进程(kill)六、作业(一)作业的概念(二)作业号(三)作业的状态(四)作业的挂起(五)作业的切回(fg)(六)jobs命令 一、进程 (一)进程的概念 经过前面的知识点,我们知道Linux是一种多用户、多任务、支持多线程和多CPU的操作系统,即系统可以有多个用户同时工作,且每个用户又可以完成多个任务,这其中通过对进程的管理,来实现对用户和系统的各种命令和程序的运行管理。 进程与程序的区别是,

小宇y的博客 3511

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Linux 进程前台后台切换与作业控制

如果是在本地终端执行一些耗时操作,如大文件解压,或者连接到远程服务器执行脚本时,一旦本地网络中断,前台进程就会结束,这会带来诸多不便,需要重新执行。通过合理调整进程优先级,可以优化系统资源的分配,确保关键任务能够获得足够的 CPU 时间,同时让一些次要任务在后台以较低优先级运行,提高系统的整体性能和稳定性。这样,该脚本在执行时会占用较少的 CPU 时间,适合在后台运行一些对实时性要求不高的任务,以免影响系统中其他重要任务的执行。,这样程序就会在后台运行,终端命令行会立即返回,你可以继续输入其他命令。

云域A的博客 1094

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Linux下的进程和作业概念,以及作业管理

进程的一个比较正式的定义是:在自身的虚拟地址空间运行的一个单独的程序。 Linux操作系统包括三种不同类型的进程,每种进程都有自己的特点和属性。 交互进程——由一个shell启动的进程。交互进程既可以在前台运行,也可以在后台运行。 批处理进程——这种进程和终端没有联系,是一个进程序列。 监控进程(也称守护进程)——Linux系统启动时启动的进程,并在后台运行。 进程和作业的

ancient_wind的专栏 3509

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

上一篇: Linux 文件系统作业——3
下一篇: Linux C文件系统作业——6
include666
博客等级 码龄9年 12粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值