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
相关文档:
1。要使用宽字符支持,使用w开头的一系列东西,如wstring,wofstream等。在使用wstring的时候,常量字符串前面要加上L,这样才能转换成wchar_t型的
else if(fileName.substr(fileName.rfind(L"."))==L".prj")
2。一个文件流(无论是ofstream还是wofstream),只支持const char*作为文件名,对于宽字符的wstring的文件名 ......
今天拷贝了虚拟机在另外一台电脑上使用,发现MAC地址冲突,于是去网上找修改方法。可按照所说的,我并没有很顺利修改成功。
下面我将过程写出来,里面有些地方需要注意一下。
下面是我从网上搜索到大部分的做法如下,红色部分是我注释的,需要注意的地方:
VMware虚拟机中修改Linux MAC地址的方法:
1、修改虚拟机的*.v ......
目录结构如下:
|
|---- YourProject
| |-------- WebRoot
| | |---- WEB ......
写在前面的话
Linux Device Driver 尝试着看了好几遍,总感觉理解不够透彻,很多东西经不住问,
才深深的意识到,要走进浩瀚无边的 Linux 世界,并不是一蹴而就的事情。我决心从理论到
实践,再一次走一边这本书,同时记录下自己的心得,和大家一起分享,一起讨论,一起进
步。
&nb ......