Linux学习
文章平均质量分 67
bobbymly
这个作者很懒,什么都没留下…
展开
-
Linux-进程的产生
1.获取进程号pid_t getpid(void); //获得当前进程号pid_t getppid(void); //获得父进程进程号2.进程复制 forkfork() 是以写实复制实现,执行一次,返回两次,父进程返回子进程 ID ,子进程返回 0,失败返回 -1pid_t fork(void);int pid=fork();if(-1==pid){ //创建失败}else if...原创 2018-02-13 23:21:02 · 280 阅读 · 0 评论 -
Linux-进程间通信和同步(1)-管道
半双工管道:单向通信 ,shell 中 管道用 | 表示$ ls -l|grep *.c //把 ls -l 的输出当做 "grep *.c" 的输入进程创建管道, 每次创建两个文件描述符来操作管道,成功返回 0 ,失败返回 -1int pipe(int filedes[2]);局限性:它是半双工的,即数据一个管道上的数据只能在一个方向上流动,如果要实现双向通信,就必须在两个进程之间建立两个管道...原创 2018-02-14 21:39:53 · 422 阅读 · 0 评论 -
Linux-进程间通信和同步(2)-信号量
1.信号量数据结构union semun{ int val; struct semid_ds *buf; //semid_ds 指针结构 unsigned short *array; //数组类型 struct seminfo *__buf; //信号量内部结构}2.新建信号量函数 semget() semget 函数用于创建一个新的信号量集合,或者访问现...原创 2018-02-17 10:54:31 · 206 阅读 · 0 评论 -
Linux-进程间通信和同步(3)-共享内存
1.创建共享内存函数 shmget()#include<sys/ipc.h>#include<sys/shm.h>int shmget(key_t key,size_t size,int shmflg);shmflg : IPC_CREAT : 如果内核中不存在这样的信号量,则把他创建出来 IPC_EXCL : 与 IPC_CREAT 一起使用时,如...原创 2018-02-19 21:36:58 · 237 阅读 · 0 评论 -
Linux-epoll笔记
linux 网络编程中 epoll 是 linux 内核提供的高效 IO多路复用模型 epoll 相比于 select 和 poll 高效的原因可以归纳如下 (1)select/poll 每次让操作系统去查询套接字上是否有事件发生,并将数据从内核态复制到用户态,这一过程的消耗非常大。而 epoll 在内核通过红黑树(高效的数据结构)管理,并且使用一个就绪事件链表,每次从就绪链表...原创 2018-03-08 21:48:28 · 240 阅读 · 0 评论 -
Linux-条件变量
条件变量通常用于线程间的同步,可以挂起线程,知道某些条件满足被唤醒。通常和互斥锁一同使用。 1. 条件变量定义pthread_cond_t cond;2. 条件变量初始化函数int pthread_cond_init(pthread_cond_t *cond,const pthread_condattr_t *attr); 或者可以通过 pthread_cond_t c...原创 2018-03-05 20:51:00 · 290 阅读 · 0 评论