在 linux 下利用C语言实现进程的创建,挂起和解挂操作
#include <stdio.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
#include <wait.h>
#include <errno.h>
#include <stdlib.h>
/***********************************************************
功能说明:在 linux 下利用C语言实现进程的创建,挂起和解挂操作
author:
***********************************************************/
void waitprocess();
int main(int argc, char * argv[])
{
waitprocess();
}
void waitprocess()
{
int count = 0;
pid_t pid = fork();
int status = -1;
if(pid<0)
{
printf("fork错误因为 %m\n",errno );
}else if(pid>0)
{
printf("这是父进程 pid = %d\n",getpid() );
printf("父进程 挂起\n");
wait(&status);//父进程执行到此,马上阻塞自己,直到有子进程结束
}else
{
printf("创建 子进程\n");
printf("这是子进程 pid = %d ,父进程为 ppid = %d\n",getpid(),getppid() );
int i;
for (i = 0; i < 10; i++) {
count++;
sleep(1);
printf("父进程已挂起 %d 秒\n", count) ;
}
exit(5);
}
printf("子进程的退出状态exit status 为 %d\n", WEXITSTATUS(status));//status是按位存储的状态信息
printf("父进程 解挂\n");
printf("从 pid = %d\(父进程\) 结束程序\n",getpid() );
}
进程间通信一:使用消息队列
msgsend.c:
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

本文介绍了如何在Linux环境下利用C语言进行进程的创建、挂起、解挂操作,并探讨了两种进程间通信的方法:通过消息队列和共享内存。示例代码包括msgsend.c和shmread.c、shmwrite.c,展示了具体的实现细节。
——进程的创建,挂起,解挂,进程间通信&spm=1001.2101.3001.5002&articleId=74543541&d=1&t=3&u=a86206d11c844cf4872257fb57ae0052)
1万+

被折叠的 条评论
为什么被折叠?



