网络编程卷2-进程间通信
llongint
这个作者很懒,什么都没留下…
展开
-
S_ISLNK S_ISREG S_ISDIR S_ISCHR S_ISBLK S_ISFIFO S_ISSOCK等宏的介
stat函数讲解:表头文件: #include <sys/types.h>#include <sys/stat.h>#include <unistd.h>定义函数: int stat(const char *file_name, struct stat *buf);函数说明: 通过文件名filename获取文件信息,并保存在buf所指的结构体...原创 2018-07-26 09:24:03 · 2682 阅读 · 0 评论 -
第11章 system V 信号量
11.1 概述二值信号量:值为0或1的信号量计数信号量:在0和某个限制值之间的信号量计数信号量集:一个或多个信号量(构成一个集合),其中每个都是计数信号量。集合的信号量数存在一个限制对每个信号量集,内核维护一下如下信息结构:struct semid_ds { struct ipc_perm ipc_perm; 权限 struct sem *sem_base; ...原创 2018-07-28 09:01:41 · 136 阅读 · 0 评论 -
第13章 Posix共享内存区
13.2 shm_open()和shm_unlink()函数#include <sys/mman.h>#include <sys/stat.h> /* For mode constants */#include <fcntl.h> /* For O_* constants */int shm_open(const...原创 2018-07-31 19:07:06 · 158 阅读 · 0 评论 -
第06章 System V消息队列
6.1 概述对于系统中的每个消息队列,内核维护一个定义在struct msqid_ds "头结点" -&gt; 表示一个“消息队列”{ struct ipc_perm msg_perm; //该结构的r/w权限 struct msg *msg_first; //指向消息队列上的第一个消息 struct msg *msg_last; //指向...原创 2018-07-31 15:48:07 · 199 阅读 · 0 评论 -
第10章 Posix信号灯
第10章 Posix信号量10.1 概述posix有名信号量:使用posix IPC标识,可用于进程或线程之间的同步posix基于内存的信号量:放在共享内存去中,可用于进程或线程之间的同步System V信号量:在内核中维护,可用于进程或线程之间的同步P/V操作P操作:代表荷兰语单词proberen(尝试),也称递减或上锁,posix术语叫等待V操作:代表荷兰语单词ver...原创 2018-07-31 15:40:13 · 171 阅读 · 0 评论 -
第09章 记录上锁
9.3 Posix fcntl记录上锁#include <unistd.h>#include <fcntl.h>int fcntl(int fd, int cmd, ... /* arg */ );用于记录上锁的cmd共有三个值,这要求arg指向flock结构体struct flock { ... short l_type; ...原创 2018-07-31 14:04:41 · 144 阅读 · 0 评论 -
第08章 读写锁
8.1 概述读写锁的分配规则如下: 只要没有某个线程持有该锁用于写,任意数目的线程可持有用于读没有线程持有用于写时,才能分配用于写8.2 获取与释放读写锁#include <pthread.h>int pthread_rwlock_rdlock(pthread_rwlock_t *rwlock);int pthread_rwlock_tryrdlock...原创 2018-07-31 10:01:46 · 126 阅读 · 0 评论 -
第07章 互斥锁和条件变量
7.5 条件变量:等待与信号发送#include &amp;amp;amp;lt;pthread.h&amp;amp;amp;gt;int pthread_cond_timedwait(pthread_cond_t *restrict cond, pthread_mutex_t *restrict mutex, const struct timespec *restrict abstime);int...原创 2018-07-30 21:36:45 · 126 阅读 · 0 评论 -
第04章 管道和FIFO
程序原运行后再输入一个文件名,程序打印文件内容:main.c:#include &amp;amp;lt;stdio.h&amp;amp;gt;#include &amp;amp;lt;unistd.h&amp;amp;gt;#define _GNU_SOURCE /* See feature_test_macros(7) */#include &amp;amp;lt;fcntl.h&am原创 2018-07-26 14:36:14 · 165 阅读 · 0 评论 -
FIFO简单使用
先启动服务端,./server &amp;,然后启动客户端,输入一个文件名服务端:server.c#include &lt;stdio.h&gt;#include &lt;unistd.h&gt;#define _GNU_SOURCE /* See feature_test_macros(7) */#include &lt;fcntl.h&gt;原创 2018-07-26 14:30:52 · 3095 阅读 · 0 评论 -
12.共享内存区介绍
12.2 mmap、munmap和msync函数1.接口#include <sys/mman.h>void *mmap(void *addr,size_t len,int prot,int flags,int fd,off_t offset);int munmap(void *addr,size_t len);int msync(void *addr,size_t l...原创 2019-03-19 19:08:26 · 154 阅读 · 2 评论