linux 进程通信—管道通信

来源:互联网 发布:动态规划的最优化原理 编辑:程序博客网 时间:2024/04/29 18:32

进程通信

1、  pipe

函数的作用:创建无名管道

函数的原型:int pipe(int fds[2])

函数的参数:新建的两个描述符fds数组返回

           fds[0],表示管道的读取端

           fds[1],表示管道的写入端

返回值:成功:0

       出错:-1;

头文件:#include <unistd.h>

 

2、  mkfifo

函数的作用:创建有名管道

函数的原型:int  mkfifo(const char*filename, mode_t mode)

参数的参数:filename:有名管道的路径、名称

           mode:管道的方式

           O_NONBLOCK : FIFO打开的时候非阻塞

           O_RDONLY:以只读的方式创建

           O_WRONLY:以只写的方式创建

           O_RDWR :以可读写的方式创建

返回值:成功:0;

       出错:-1;

 

3、  kill

函数的作用:传递信号给指定的进程

函数的原型:int  kill(pid_t pid,  int sig)

函数的参数:pid: > 0,指定的进程pid

           pid:=0,发送给目前进程相同进程租的所有进程

           Pid : -1,广播给系统的所有的进程

           Sig :信号

返回值:成功:0;

       失败:-1;

头文件:#include <sys/types.h>

       #include <signal.h>

 

4、  raise

函数的作用:发送信号给本身

函数的原型:int  raise( int  sig)

头文件:#include <singal.h>

 

5、  alarm

函数的作用:设置信号传送闹钟

函数的原型:unsigned int alarm(unsigned int seconds)

返回值:返回之前闹钟的剩余秒数,若之前无闹钟,返回0

6、  pause

函数的作用:让进程暂停知道信号出现

函数的原型:int pause(void)

返回值:-1;

头文件:#include <unistd.h>

 

7、  singal

函数的作用:设置信号处理方式

函数的原型:void (*singal) (int signum, void (*handler)(int)))(int)

           typedef void(*sighandler_t(int)) sifhandler_t

           singal (int signum , sighandler_t handler)

           

进程通信学习的总结:

1、  进程通信有哪几种方式?

(1)      无名管道:用于父子进程间的通信

(2)      有名管道:用于同一文件系统中的任意两个进程

 

2、  管道和文件有什么区别?

3、  创建管道与创建进程间的关系?

通常,我们要先创建一个管道,再通过fork函数创建一个子进程,该子进程会继承父进程所创建的管道进程通信

1、  pipe

函数的作用:创建无名管道

函数的原型:int pipe(int fds[2])

函数的参数:新建的两个描述符fds数组返回

           fds[0],表示管道的读取端

           fds[1],表示管道的写入端

返回值:成功:0

       出错:-1;

头文件:#include <unistd.h>

 

2、  mkfifo

函数的作用:创建有名管道

函数的原型:int  mkfifo(const char*filename, mode_t mode)

参数的参数:filename:有名管道的路径、名称

           mode:管道的方式

           O_NONBLOCK : FIFO打开的时候非阻塞

           O_RDONLY:以只读的方式创建

           O_WRONLY:以只写的方式创建

           O_RDWR :以可读写的方式创建

返回值:成功:0;

       出错:-1;

 

3、  kill

函数的作用:传递信号给指定的进程

函数的原型:int  kill(pid_t pid,  int sig)

函数的参数:pid: > 0,指定的进程pid

           pid:=0,发送给目前进程相同进程租的所有进程

           Pid : -1,广播给系统的所有的进程

           Sig :信号

返回值:成功:0;

       失败:-1;

头文件:#include <sys/types.h>

       #include <signal.h>

 

4、  raise

函数的作用:发送信号给本身

函数的原型:int  raise( int  sig)

头文件:#include <singal.h>

 

5、  alarm

函数的作用:设置信号传送闹钟

函数的原型:unsigned int alarm(unsigned int seconds)

返回值:返回之前闹钟的剩余秒数,若之前无闹钟,返回0

6、  pause

函数的作用:让进程暂停知道信号出现

函数的原型:int pause(void)

返回值:-1;

头文件:#include <unistd.h>

 

7、  singal

函数的作用:设置信号处理方式

函数的原型:void (*singal) (int signum, void (*handler)(int)))(int)

           typedef void(*sighandler_t(int)) sifhandler_t

           singal (int signum , sighandler_t handler)

           

进程通信学习的总结:

1、  进程通信有哪几种方式?

(1)      无名管道:用于父子进程间的通信

(2)      有名管道:用于同一文件系统中的任意两个进程

 

2、  管道和文件有什么区别?

3、  创建管道与创建进程间的关系?

通常,我们要先创建一个管道,再通过fork函数创建一个子进程,该子进程会继承父进程所创建的管道

进程通信

1、  pipe

函数的作用:创建无名管道

函数的原型:int pipe(int fds[2])

函数的参数:新建的两个描述符fds数组返回

           fds[0],表示管道的读取端

           fds[1],表示管道的写入端

返回值:成功:0

       出错:-1;

头文件:#include <unistd.h>

 

2、  mkfifo

函数的作用:创建有名管道

函数的原型:int  mkfifo(const char*filename, mode_t mode)

参数的参数:filename:有名管道的路径、名称

           mode:管道的方式

           O_NONBLOCK : FIFO打开的时候非阻塞

           O_RDONLY:以只读的方式创建

           O_WRONLY:以只写的方式创建

           O_RDWR :以可读写的方式创建

返回值:成功:0;

       出错:-1;

 

3、  kill

函数的作用:传递信号给指定的进程

函数的原型:int  kill(pid_t pid,  int sig)

函数的参数:pid: > 0,指定的进程pid

           pid:=0,发送给目前进程相同进程租的所有进程

           Pid : -1,广播给系统的所有的进程

           Sig :信号

返回值:成功:0;

       失败:-1;

头文件:#include <sys/types.h>

       #include <signal.h>

 

4、  raise

函数的作用:发送信号给本身

函数的原型:int  raise( int  sig)

头文件:#include <singal.h>

 

5、  alarm

函数的作用:设置信号传送闹钟

函数的原型:unsigned int alarm(unsigned int seconds)

返回值:返回之前闹钟的剩余秒数,若之前无闹钟,返回0

6、  pause

函数的作用:让进程暂停知道信号出现

函数的原型:int pause(void)

返回值:-1;

头文件:#include <unistd.h>

 

7、  singal

函数的作用:设置信号处理方式

函数的原型:void (*singal) (int signum, void (*handler)(int)))(int)

           typedef void(*sighandler_t(int)) sifhandler_t

           singal (int signum , sighandler_t handler)

           

进程通信学习的总结:

1、  进程通信有哪几种方式?

(1)      无名管道:用于父子进程间的通信

(2)      有名管道:用于同一文件系统中的任意两个进程

 

2、  管道和文件有什么区别?

3、  创建管道与创建进程间的关系?

通常,我们要先创建一个管道,再通过fork函数创建一个子进程,该子进程会继承父进程所创建的管道

0 0
原创粉丝点击