易截截图软件、单文件、免安装、纯绿色、仅160KB

学习笔记 Unix/Linux进程间通信

面试时一再地被问到进程间通信的情况,而我的理解一直停留在概念上和名词上,必须要做点实验加深理解。
IPC:Interprocess communication。有些IPC的方法不仅可以用于相同主机,也可以用于不同主机,如sockets和STREAMS。
经典IPC之一:pipes(管道)
,使用最广泛,具有亲缘关系
的进程间才能使用管道进行IPC。
使用了管道的例子:ls -a | grep "jun"
自己的程序中使用管道的方法:父进程创建pipe,然后fork子进程,这时父子进程通过pipe进行通信了。
例子代码:(为了抓住重点,删除了处理错误的代码)
int main()
{
    int fd[2]; //管道是一种文件,有read端和write端,要用到两个file descriptor
    pipe(fd); //创建管道
    pid = fork();
    if (pid > 0) { //父进程
       close(fd[0]); //fd[0]是read端,fd[1]是write端,这里关闭read端。close()是File I/O的API。
       write(fd[1], ”hello pipe\n",  11); //通过write端,写入数据。write()是File I/O的API。
    }
    else {  //子进程
       close(fd[1]); //关闭write端
       int n = read(fd[0], buf, MAX_SIZE);
       write(1, buf, n); //整数1,在我所知道的操作系统的实现中是标准输出的File descriptor
    }
    exit(0);
}
程序代码中使用管道的套路一般是:pipe;fork;exec*,操作系统又提供了popen和pclose函数整合有关管道的函数,使得可以在自己的程序中用更少的代码实现管道。
经典IPC之二:FIFOs, FIFOs are sometimes called named pipes(有名管道)。突破了只能在相关进程间使用的限制.
d
补:面试时我猜测共享文件是一种IPC,这个不对。我因为对共享内存没记牢靠,所以会猜测到共享文件是一种IPC。


相关文档:

linux内核register_chrdev_region()系列函数

内核中所有已分配的字符设备编号都记录在一个名为 chrdevs 散列表里。该散列表中的每一个元素是一个 char_device_struct 结构,它的定义如下:
   static struct char_device_struct {
       struct char_device_struct *next;    // 指向散列冲突链表中的下一个元素 ......

linux资源网站

=======================================================================
一些关于Linux的资源站点,希望对大家有帮助
http://www.linux.org/ ;
Linux官方新闻和信息网站。
http://freesoft.cei.gov.cn/ ;
中国软件行业协会国际自由软件应用研究发展分会的自由软件库,上面提供有各种Linux软件可供下载,并有Linux ......

linux五个查找命令


whereis 命令详解
功能说明:查找文件。
语  法:whereis [-bfmsu][-B ...][-M ...][-S ...][文件...]
补充说明:whereis指令会在特定目录中查找符合条件的文件。这些文件的烈性应属于原始代码,二进制文件,或是帮助文件。
参  数:
 -b  只查找二进制文件。
 -B  只在设置的目录下查找二进制文件。
 -f ......

LINUX 多线程互斥量和读写锁区别


线程的同步, 发生在多个线程共享相同内存的时候, 这时要保证每个线程在每个时刻看到的共享数据是一致的. 如果每个线程使用的变量都是其他线程不会使用的(read & write), 或者变量是只读的, 就不存在一致性问题. 但是, 如果两个或两个以上的线程可以read/write一个变量时, 就需要对线程进行同步, 以确保它们在访问该变 ......

Linux常用命令

Linux常用命令清单
 
NO
分类
PS1
命令名
用法及参数
功能注解
 
1
文件管理
#
ls
ls -a
列出当前目录下的所有文件,包括以.头的隐含文件
 
 
文件管理
#
ls
ls -l或ll
列出当前目录下文件的详细信息
 
 
文件管理
#
pwd
pwd
查看当前所在目录的绝对路经
  ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号