您的位置:首页 > 新闻 > 会展 > 成都私家花园设计公司哪家好_中天建设集团有限公司重庆分公司_惠州自动seo_福建seo排名培训

成都私家花园设计公司哪家好_中天建设集团有限公司重庆分公司_惠州自动seo_福建seo排名培训

2025/2/26 9:44:59 来源:https://blog.csdn.net/2301_79207059/article/details/145843939  浏览:    关键词:成都私家花园设计公司哪家好_中天建设集团有限公司重庆分公司_惠州自动seo_福建seo排名培训
成都私家花园设计公司哪家好_中天建设集团有限公司重庆分公司_惠州自动seo_福建seo排名培训

一、进程通信

同一主机进程间通信:

1.1无名管道

当前系统默认64K大小(当管道满时,再写时按FIFO的方式存储,会发生写阻塞)

用于同一主机下,具有亲缘关系的进程间通信。

1.创建一个管道并打开 int pipe(int pipefd[2]);(pipefd[0],管道的读端,pipefd[1]管道的写端) 

2.读管道    read();

3.写管道    write();

4.关闭管道 close();

5.删除管道 remove();

1.2有名管道

用于同一主机下,具有任意关系的进程间通信。

1.创建一个管道文件

mkfifo fifo(名为fifo的管道文件)    int mkfifo(const char *pathname, mode_t mode); 

a,b两个进程都创建了一个管道文件,目的是运行任意进程。

2.打开管道文件  open(“./fifo”,)//文件名、读写执行权限

3.读写                 write/read()

4.关闭                 close()

5.删除管道文件  remove(“路径”);

读关闭只写:管道破裂为防止这种情况,读写端必须同时打开。


1.3信号

信号:进程间的异步通知机制(软中断)

信号类型:kill -l

kill(pid,SIGUSR1)

2.Ctrl+C  3.Ctrl+\ 9.强制结束11.段错误 13.管道破裂 14.为进程定时,到达时间进程结束 17.子进程结束发给父进程 18.让停止态继续执行 19,让运行态停止 20.让进程暂停转后台Ctrl+Z

10/12自定义信号   9/19管理员信号 (无法被捕获和忽略)


1.3.2.接受信号

1.3.2.1.发送信号:


int kill(pid_t pid, int sig);

功能:给指定进程发送信号参数:
pid:进程pid号

Sig:发送的信号编号

  1.3.2.2 使用注册信号  

        1.1注册信号处理函数signal

        1.2忽略:不处理

        1.3捕获 : 按照用户自定义方式处理。

        1.4缺省:按信号默认方式处理(若不注册)

sighandler_t signal(int signum, sighandler_t handler);
功能:信号的接收方,注册一个信号处理函数

参数:

signnum:几号信号

handler:typede void (* sighandler_t handler)(捕获方式处理,自定义)

                SIG_IGN忽略方式处理

                SIG_DFL默认方式处理(缺省)

返回值:

        成功:函数地址

        失败:SIG_ERR

4.alarm
unsiqned int alarm(unsiqned int seconds):

功能:间隔seconds秒后给调用进程发送一个SIGALRM信号

参数:
seconds:秒数

返回值:
成功返回上次设定剩余的时间
上次未设定则返回0

5.int pause(void)

功能:挂起当前进程(可中断睡眠状态)

可以通过发送信号的方式,唤醒pause挂起的进程,信号必须被捕获。


1.4共享队列

1.5消息队列

1.6信号灯

不同主机进程间通信:

1.7网络套接字

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com