LINUX进程间通信
Linux 进程间通信学习
1.Linux 间进程通信的分类
1. 管道通信(pipe)和命名管道(FIFO)
2. 信号(软件中断)
3. 消息队列
4. 共享内存
5. 信号量
6. SOCKET
1.1管道通信
管道通信主要分普通管道和命名管道。
他们之间的差别就在于普通管道适合同一个祖先的两个进程之间的通信,而命名管道则不受该限制。
管道相关函数有:
Int pipe(int filedes[2]);
Pipe 函数用于在内核中开辟一块缓冲区用于通信,filedes是传递给用户的两个文件描述符。Filedes[0]用于读,filedes[1]用于写。
调用成功返回0,否则返回-1.
#include <unistd.h>
#include <sys/types.h>
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
int pipe_fd[2];
pid_t pid;
char buf_r[100];
char* p_wbuf;
int r_num;
memset(buf_r,0,sizeof(buf_r));
if(pipe(pipe_fd)<0)
{
printf("pipe create error\n");
return -1;
}
if((pid=fork())==0)
{
printf("\n");
&nbs
相关文档:
----------------------------------------------------------------------------------------------------------------------------------------
/**/
/*
********************************************************************************************************
* @Description:s3c2410的rtc驱动的实 ......
oracle RAC 9.2.0.4升级到9.2.0.8
操作系统平台:Red Hat Enterprise Linux AS release 3
准备工作:
1. Check Tablespace Sizes and Set Parameter Values
&nb ......
linux操作系统下system () 函数详解
(执行shell 命令)
相关函数
fork,execve,waitpid,popen
表头文件
#include<stdlib.h>
定义函数
int system(const char * string);
函数说明
system()会调用fork()产生子进程,由子进程来调用/bin/sh-c string来执行参数string ......
在Linux下使用Gtk+实现最简单的GUI窗口,源代码如下:
//SimpleGui.c
#include <gtk/gtk.h>
int main(int argc,char *argv[])
{
//定义一个widget(Gtk+构件),这里定义的是一个窗口构件
GtkWidget *wnd;
//Gtk+2.0的初始化命令行参数,每一个Gtk+程序都要有这句话
gtk_init(& ......