C语言进程编程(持续更新)

getpid函数:

原型:pid_t getpid(void)

特性:返回值是PID值

用途:获取当前进程PID

用法例

cpp 复制代码
#include<stdio.h>
#include <sys/types.h>
#include<unistd.h>
int main()
{
	pid_t pid;
	pid = getpid();
	printf("pid = %d\n",pid);
}

现象:

fork函数:

原型:pid_t fork(void);

特性:fork函数调用成功,返回两次,返回值为0,代表当前进程是子进程,返回值非负数(返回值是子进程的pid),代表当前进程为父进程(执行的是fork()下面的内容(包括本条)),拷贝父进程的存储空间

用途:创建进程

用法例:

cpp 复制代码
#include<stdio.h>
#include <sys/types.h>
#include<unistd.h>
int main()
{
	pid_t pid;
	int sign;
	pid = getpid();
	printf("father pid = %d\n",pid);
	sign = fork();
	pid = getpid();
	if (sign>0)
	{
		printf("this is father,pid = %d\n",pid);
	}
	else if (sign==0)
	{
		printf("this is child,pid = %d\n",pid);
	}
}

现象:

vfork函数:

原型:pid_t vfork(void);

特性:vfork函数调用成功,返回两次,返回值为0,代表当前进程是子进程,返回值非负数(返回值是子进程的pid),代表当前进程为父进程(执行的是vfork()下面的内容(包括本条)),不拷贝父进程的存储空间

用法例:

cpp 复制代码
#include<stdio.h>
#include <sys/types.h>
#include<unistd.h>
#include <stdlib.h>
int main()
{
	pid_t pid;
	int data = 10;
	int sign;
	pid = getpid();
	printf("father pid = %d\n",pid);
	sign = vfork();
	pid = getpid();
	if (sign>0)
	{
		printf("this is father,pid = %d\n",pid);
		printf("data = %d\n",data);
	}
	else if (sign==0)
	{
		printf("this is child,pid = %d\n",pid);
		data = 5;
		exit(0);
	}
	return 0;
}

现象:

相关推荐
码农学院1 小时前
基于运维监控体系的网络品牌推广方案:从架构设计到技术实现
运维·网络
炸膛坦客8 小时前
单片机/C/C++八股:(二十六)IIC 专题(I²C)---- 上集
c语言·c++·单片机
爱写代码的森8 小时前
鸿蒙三方库 | harmony-utils之ImageUtil图片保存到本地详解
服务器·华为·harmonyos·鸿蒙·huawei
大耳朵-小飞象10 小时前
电力安全运维的智能密码:BACS如何破解设备全生命周期管理难题,让电网安全“看得见、管得住”?
运维·安全·智慧城市·能耗系统·楼宇智控·未来生活
极客侃科技11 小时前
制造企业 MES/APS 选型:SAP PP/DS 集成、ERP-MES 边界划分与一体化架构要点
运维·架构·制造
HLC++11 小时前
Linux的进程间通信
android·linux·服务器
华清远见IT开放实验室12 小时前
实验室建设案例 | 石家庄科技信息职业学院嵌入式实验室——从底层硬件到系统应用,一所应用型高校的嵌入式人才培养这样落地
linux·arm开发·stm32·嵌入式硬件·高校·实验室建设
白露与泡影13 小时前
Arthas 实战指南:从方法耗时定位到 JVM 变量热修改
服务器·jvm·c#
神奇霸王龙14 小时前
Claude Code屠榜:MiMo与Grok紧追Codex
服务器·网络·人工智能·gpt·ai·ai编程
Web极客码14 小时前
WordPress SEO优化:提升网站排名的13个关键步骤
服务器·seo·wordpress