一.无名管道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环境高级编程——进程间通讯方法整理的更多相关文章

  1. UNIX环境高级编程——进程管理和通信(总结)

    进程管理与通信 进程的管理 进程和程序的区别: 进程: 程序的一次执行过程   动态过程,进程的状态属性会发生变化 程序:存放在磁盘上的指令.数据的有序集合  是个文件,可直观看到 程序program ...

  2. UNIX环境高级编程——进程基本概述

    一.什么是进程 从用户的角度来看进程是程序的一次执行过程.从操作系统的核心来看,进程是操作系统分配的内存.CPU时间片等资源的基本单位.进程是资源分配的最小单位.每一个进程都有自己独立的地址空间与执行 ...

  3. UNIX环境高级编程——进程控制

    一.进程标识符 ID为0的进程是调度进程,常常被称为交换进程.该进程是内核的一部分,它并不执行任何磁盘上的程序,因此也被称为系统进程.进程ID 1通常是init进程,在自举过程结束时由内核调用.ini ...

  4. Unix环境高级编程—进程关系

    终端登录 网络登录 进程组 getpgrp(void) setpgid(pid_t pid, pid_) 会话: 是一个或多个进程组的集合,通常由shell的管道将几个进程编成一组. setsid(v ...

  5. Unix环境高级编程—进程控制(二)

    一.函数wait和waitpid 今天我们继续通过昨天那个死爹死儿子的故事来讲(便于记忆),现在看看wait和waitpid函数. #include<sys/wait.h> pid_t w ...

  6. UNIX环境高级编程——进程关系

    一.终端的概念 在UNIX系统中,用户通过终端登录系统后得到一个Shell进程,这个终端成为Shell进程的控制终端(Controlling Terminal),控制终端是保存在PCB中的信息,而我们 ...

  7. UNIX环境高级编程——进程环境

    一.main函数 C程序总是从main函数开始.当内核执行C程序时,在调用main前先调用一个特殊的启动例程.可执行程序文件将此启动例程指定为程序的起始地址--这是由连接编译器设置的,而连接编译器则由 ...

  8. unix环境高级编程----进程控制wait()

    一.wait()函数 当一个进程中调用wait()函数的时候 (1)假设其全部的子程序都还在执行,则堵塞 (2)假设一个子进程已终止.则等待父进程获取其终止状态. (3)假设没有子进程,则返回错误. ...

  9. Unix环境高级编程—进程控制(三)

    一.解释器文件 解释器文件属于文本文件,起始行形式为: #! pathname[optional-argument] 我们创建一个只有一行的文件如下: #!/home/webber/test/echo ...

随机推荐

  1. Python小代码_13_生成两个参数的最小公倍数和最大公因数

    def demo(m, n): if m > n: m, n = n, m p = m * n while m != 0: r = n % m n = m m = r return (int(p ...

  2. Python小代码_3_购物车

    product_list = [ ('MacBook', 9000), ('kindle', 500), ('tesla', 900000), ('book', 100), ('bike', 2000 ...

  3. vue通过id从列表页跳转到对应的详情页

    1. 列表页:列表页带id跳转到详情页 详情页:把id传回到后台就可以获取到数据了 2.列表页跳转到详情页并更改详情页的标题 列表页:带id和页面标题的typeid跳转到详情页 详情页:在html绑定 ...

  4. postgresql添加字段

    ALTER TABLE jiangan_config ADD COLUMN article text NOT NULL DEFAULT ''; pg_dump -s database_name -t ...

  5. Dynamics CRM 本地插件注册器连CRMAn unsecured or incorrectly secured fault was received from the other party

    今天遇到个问题,在本地打开插件注册器连接到远程CRM服务器时报如下问题 但我在CRM服务器上连接注册器是可以打开的,所以不存在账号权限这类的问题了(当然我用的是超管的账号也不可能存在),最后查询得知是 ...

  6. 【Unity3D】 Unity Chan项目分享

    写在前面 之前的一个博文里分享了日本Unity酱的项目,如果大家有去仔细搜Unity酱的话,就会发现日本Unity官方还放出了一个更完整的Unity酱的项目,感觉被萌化了!(事实上,Unity日本经常 ...

  7. 剑指Offer——知识点储备-数据库基础

    剑指Offer--知识点储备-数据库基础 数据库 事务 事务的四个特性(ACID):   原子性(Atomicity).一致性(Consistency).隔离性(Isolation).持久性(Dura ...

  8. 输入一个正数n,输出所有和为n连续正数序列。例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3个连续序列1-5、4-6和7-8。

    输入一个正数n,输出所有和为n连续正数序列.例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3个连续序列1-5.4-6和7-8. #define N 15 void findS ...

  9. Servlet - 基础

    Servlet 标签 : Java与Web HTTP协议 HTTP(hypertext transport protocol),即超文本传输协议.这个协议详细规定了浏览器(Browser)和万维网服务 ...

  10. JBOSS EAP6 系列二 客户端访问位于EAR中的EJB时,jndi name要遵守的规则

    EJB 的 jndi语法(在整个调用远程ejb的过程中语法的遵循是相当重要的) 参见jboss-as-quickstarts-7.1.1.CR2\ejb-remote\client\src\main\ ...