linux进程篇 (二) 进程的基本控制
2. 进程的基本操作
接口函数
#include <unistd.h> //创建子进程 pid_t fork(void);//结束子进程 void exit(int status);//进程等待 #include <sys/wait.h> pid_t wait(int *stat_loc);//进程睡眠 unsigned int sleep(unsigned int seconds);
2.1 创建子进程
//创建子进程 //pid_t 用于保存PID信息的结构体,如果创建子进程成功,返回子进程PID, //如果pid == 0 表示子进程 pid_t fork(void);
2.2 取消进程
void exit(int status); //exit 用于结束子进程,使用还函数会释放子进程的所有占用资源,status 数值用于返回给父线程
2.3 同步进程
pid_t wait(int *stat_loc); //wait 用于父进程和子进程同步,父进程调用后,就进入睡眠状态,直到子进程结束或者被其他事件唤醒。
例子:创建子进程,打印父子进程的pid
#include <sys/types.h> //提供系统调用标志 #include <sys/stat.h> //提供系统状态信息和相关函数 #include <sys/uio.h> //提供进程I/O操作函数 #include <unistd.h> //标准函数库 #include <fcntl.h> //文件操作相关函数库 #include <string.h> //字符串操作函数库 #include <sys/wait.h> //wait调用相关函数库 #include <stdio.h> //标准输入输出函数库 #include <stdlib.h> //常用工具函数库int main(int argc, char const *argv[]) {int fd;pid_t pid;char buf[1024] = {0}; //缓冲空间int status;const char *s1="我是子进程";fd = open("file",O_RDWR | O_CREAT, 0755);if(fd < 0){perror("open");return -1;}strcpy(buf,"我是父进程");pid = fork();if(pid == 0){//子进程strcpy(buf,"我是子进程");puts("我是子进程");printf("子进程的pid为 %d\n",getpid());printf("父进程的pid为 %d\n",getppid());write(fd,buf,strlen(buf));close(fd);exit(status);}else if(pid > 0){//父进程puts("我是父进程");printf("父进程的pid是 %d\n",getpid());printf("子进程的pid是 %d\n",pid);write(fd,buf,strlen(buf));close(fd);}else{perror("fork");close(fd);return -1;}wait(&status);return 0; }
转载于:https://www.cnblogs.com/kmist/p/10634224.html
linux进程篇 (二) 进程的基本控制相关推荐
- 操作系统实验一 Linux基本操作|实验二 进程管理
由于当时没存代码,只有实验文档代码截图,文末也可直接获取实验文档. 操作系统实验 目录 实验一 Linux基本操作 实验二进程管理 实验一 Linux基本操作 1实验目的 1.熟悉在Linux操作系统 ...
- linux线程篇,linux线程篇 (二) 线程的基本操作
线程 进程 标识符 pthread_t pid_t 获取ID pthread_self() getpid() 创建 pthread_create() fork 销毁 pthread_exit() ex ...
- linux内核笔记二 进程管理
三.系统的进程管理 1.系统的进程运转方式 系统时间 (jiffies 系统滴答) cpu内部有一个RTC(系统的定时器),会在上电的时候调用mktime函数算出1970年一月一日0时开始到当前开机点 ...
- RK3588平台开发系列讲解(进程篇)进程的简介
平台 内核版本 安卓版本 RK3588 Linux 5.10 Android 12 文章目录 一.进程的四要素 二.进程的三种状态 三.task_struct数据结构 四.进程优先级 五.进程系统调用 ...
- 【Linux基础篇二】VMtools的安装、共享文件夹的设置
- Linux基础篇——Linux进程、服务管理
文章目录 1. 什么是进程 2. Linux下进程与执行者的关系(多人多任务环境) 3. 工作(Job)管理 3.1 将指令丢到后端执行 & 3.2 将目前的工作暂停 Ctrl+z 3.3 j ...
- Linux高性能服务器开发——进程篇
本文主要是学习Linux高性能服务器开发需要提前了解的知识,后续还会涉及到虚拟内存方面的内容,各位看官可以多了解了解,看到文章内有将的不清楚或者讲错的地方请各位一定留言,我看到后会第一时间验证并修正的 ...
- vbs结束进程代码_物联网学习教程—Linux系统编程之进程控制
Linux系统编程之进程控制 一.结束进程 首先,我们回顾一下 C 语言中 continue, break, return 的作用: continue: 结束本次循环 break: 跳出整个循环,或跳 ...
- linux内核调用( )为进程创建虚存区_Linux内核分析-总结篇(九)
本次内容作为Linux内核的总结内容,主要涉及对Linux系统的总体的一些理解,同时将之前的一些总结贴出来作为大家的一个索引,希望笔者一样的菜鸟有一些帮助和入门的作用.从一个初学者的角度对Linux有 ...
最新文章
- CXF的webservice接口中字符串参数中文问题
- 《Adobe InDesign CS5中文版经典教程》—第1课1.9节查找InDesign帮助资源
- boost::core模块default_allocator
- C++:C++在图片特定区域之外产生随机数
- 真机iOS SDK升级后xcode不能进行真机调试 怎么办
- 用户空间与内核空间数据交换的方式(1)------debugfs
- 汇编在嵌入式编程中的作用_如何在嵌入式Power BI报表中以编程方式传递凭据
- Python资料收藏(杂乱版)
- camera驱动电源配置_电源行业发展前景如何?
- 为什么selenium定位不到元素
- python中的dict是什么数据类型_Python基本数据类型之dict
- iis swagger 部署_AspNet Core Api Restful +Swagger 发布IIS 实现微服务之旅 (二)
- sql数据库如何分离
- Win7/10 远程桌面发生验证错误 要求的函数不受支持 一键解决
- 刘润老师的5分钟商学院营销案例~比例偏见!
- 捷宇高拍仪D系列 javaweb集成进项目
- 【算法】两矩形相交的判定
- 欧洲中世纪名剑兵器谱
- CentOS8.5系统访问限制
- 带有数字钥匙的智能电动车已商用