UNIX环境高级编程——进程间通讯方法整理
一.无名管道pipe
#include <unistd.h>
int pipe(int fd [2])
二.fifo
#include <sys/stat.h>
int mkfifo(const char *path, mode_t mode);
三.信号
#include <signal.h>
void (*signal(int sig, void (*func)(int)))(int);
#include <signal.h>
int sigaction(int sig, const struct sigaction *restrict act,struct sigaction *restrict oact);
#include <signal.h>
int kill(pid_t pid, int sig);
#include <signal.h>
int raise(int sig);
#include <signal.h>
int sigqueue(pid_t pid, int signo, const union sigval value);
#include <unistd.h>
unsigned alarm(unsigned seconds);
#include <stdlib.h>
void abort(void);
四.消息队列
#include <sys/msg.h>
int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg);
#include <sys/msg.h>
ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp,int msgflg);
#include <sys/msg.h>
int msgget(key_t key, int msgflg);
#include <sys/msg.h>
int msgctl(int msqid, int cmd, struct msqid_ds *buf);
五.信号量
#include <sys/ipc.h>
key_t ftok(const char *path, int id);
#include <sys/sem.h>
int semget(key_t key, int nsems, int semflg);
#include <sys/sem.h>
int semop(int semid, struct sembuf *sops, size_t nsops);
#include <sys/sem.h>
int semctl(int semid, int semnum, int cmd, ...);
六.共享内存
#include <sys/shm.h>
int shmget(key_t key, size_t size, int shmflg);
#include <sys/shm.h>
void *shmat(int shmid, const void *shmaddr, int shmflg);
#include <sys/shm.h>
int shmdt(const void *shmaddr);
#include <sys/shm.h>
int shmctl(int shmid, int cmd, struct shmid_ds *buf);
七.socket
#include <sys/socket.h>
int socket(int domain, int type, int protocol);
#include <sys/socket.h>
int bind(int socket, const struct sockaddr *address,socklen_t address_len);
#include <sys/socket.h>
int connect(int socket, const struct sockaddr *address,socklen_t address_len);
#include <sys/socket.h>
int accept(int socket, struct sockaddr *restrict address,socklen_t *restrict address_len);
#include <sys/socket.h>
ssize_t recv(int socket, void *buffer, size_t length, int flags);
#include <sys/socket.h>
ssize_t recvfrom(int socket, void *restrict buffer, size_t length,int flags,
struct sockaddr *restrict address,socklen_t *restrict address_len);
#include <sys/socket.h>
ssize_t recvmsg(int socket, struct msghdr *message, int flags);
#include <sys/socket.h>
ssize_t send(int socket, const void *buffer, size_t length, int flags);
#include <sys/socket.h>
ssize_t sendto(int socket, const void *message, size_t length,int flags,
const struct sockaddr *dest_addr,socklen_t dest_len);
#include <sys/socket.h>
ssize_t sendmsg(int socket, const struct msghdr *message, int flags);
UNIX环境高级编程——进程间通讯方法整理的更多相关文章
- UNIX环境高级编程——进程管理和通信(总结)
进程管理与通信 进程的管理 进程和程序的区别: 进程: 程序的一次执行过程 动态过程,进程的状态属性会发生变化 程序:存放在磁盘上的指令.数据的有序集合 是个文件,可直观看到 程序program ...
- UNIX环境高级编程——进程基本概述
一.什么是进程 从用户的角度来看进程是程序的一次执行过程.从操作系统的核心来看,进程是操作系统分配的内存.CPU时间片等资源的基本单位.进程是资源分配的最小单位.每一个进程都有自己独立的地址空间与执行 ...
- UNIX环境高级编程——进程控制
一.进程标识符 ID为0的进程是调度进程,常常被称为交换进程.该进程是内核的一部分,它并不执行任何磁盘上的程序,因此也被称为系统进程.进程ID 1通常是init进程,在自举过程结束时由内核调用.ini ...
- Unix环境高级编程—进程关系
终端登录 网络登录 进程组 getpgrp(void) setpgid(pid_t pid, pid_) 会话: 是一个或多个进程组的集合,通常由shell的管道将几个进程编成一组. setsid(v ...
- Unix环境高级编程—进程控制(二)
一.函数wait和waitpid 今天我们继续通过昨天那个死爹死儿子的故事来讲(便于记忆),现在看看wait和waitpid函数. #include<sys/wait.h> pid_t w ...
- UNIX环境高级编程——进程关系
一.终端的概念 在UNIX系统中,用户通过终端登录系统后得到一个Shell进程,这个终端成为Shell进程的控制终端(Controlling Terminal),控制终端是保存在PCB中的信息,而我们 ...
- UNIX环境高级编程——进程环境
一.main函数 C程序总是从main函数开始.当内核执行C程序时,在调用main前先调用一个特殊的启动例程.可执行程序文件将此启动例程指定为程序的起始地址--这是由连接编译器设置的,而连接编译器则由 ...
- unix环境高级编程----进程控制wait()
一.wait()函数 当一个进程中调用wait()函数的时候 (1)假设其全部的子程序都还在执行,则堵塞 (2)假设一个子进程已终止.则等待父进程获取其终止状态. (3)假设没有子进程,则返回错误. ...
- Unix环境高级编程—进程控制(三)
一.解释器文件 解释器文件属于文本文件,起始行形式为: #! pathname[optional-argument] 我们创建一个只有一行的文件如下: #!/home/webber/test/echo ...
随机推荐
- js获取当前的日期时间 格式“yyyy-MM-dd HH:MM:SS”
function getNowFormatDate() { var date = new Date(); var seperator1 = "-"; var seperator2 ...
- 优化Webpack打包速度
1. Webpack 可以配置 externals 来将依赖的库指向全局变量,从而不再打包这个库,比如对于这样一个文件: import React from 'react'; console.lo ...
- Kibana插件sentinl使用教程
简介 对于Kibana的一些数据我们有时候是想要对某些字段进行持续关注的,这时候通过报警的手段就可以大幅提升对这些信息状态了解的及时性及可靠性.使用sentinl插件就可以帮助我们实现这个功能. 此教 ...
- DEV中svg图标的使用
0.开始之前 先看看使用效果 在操作栏的使用: 在菜单中的使用 1.简述SVG图标 中文名:可缩放矢量图形 外文名:Scalable Vector Graphics 外语缩写:SVG 开发商:万维网联 ...
- Docker仓库
仓库是集中存放镜像文件的场所.有时候会把仓库和仓库注册服务器(Registry)混为一谈,并不严格区分.实际上,仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(t ...
- ELK 6安装配置 nginx日志收集 kabana汉化
#ELK 6安装配置 nginx日志收集 kabana汉化 #环境 centos 7.4 ,ELK 6 ,单节点 #服务端 Logstash 收集,过滤 Elasticsearch 存储,索引日志 K ...
- “你什么意思”之基于RNN的语义槽填充(Pytorch实现)
1. 概况 1.1 任务 口语理解(Spoken Language Understanding, SLU)作为语音识别与自然语言处理之间的一个新兴领域,其目的是为了让计算机从用户的讲话中理解他们的意图 ...
- Conference-Web Search and Data Mining
Conference WSDM(Web Search and Data Mining)The ACM WSDM Conference Series 不像KDD.WWW或者SIGIR,WSDM因为从最开 ...
- 安卓高级6 CoordinatorLayout
原作者大神地址:http://blog.csdn.net/huachao1001/article/details/51554608 曾在网上找了一些关于CoordinatorLayout的教程,大部分 ...
- Bootstrap3 排版-标题
HTML 中的所有标题标签,<h1> 到 <h6> 均可使用.另外,还提供了 .h1 到 .h6 类,为的是给内联(inline)属性的文本赋予标题的样式. h1. Boots ...