全部博文(1493)
发布时间:2012-12-10 13:52:04
int mkfifo(char *pathname, mode mode ) mkfifo函数需要两个参数,第一个参数(pathname)是将要在文件系统中创建的一个专用文件。第二个参数(mode)用来规定FIFO的读写权限。mkfifo函数如果调用成功的话,返回值为0;如果调用失败返回值为-1。 mkfifo函数的作用是在文件系统中创建一个文件,该文件用于提供FIFO功能,即命名管道。前边讲的那些管道都没有名字,因此它们被称为匿名管道,或简称管道。对文件系统来说,匿名管道是不可见的,它的作用仅限于在父进程和子进程两个进程......【阅读全文】
发布时间:2012-12-10 13:52:04
int mkfifo(char *pathname, mode mode ) mkfifo函数需要两个参数,第一个参数(pathname)是将要在文件系统中创建的一个专用文件。第二个参数(mode)用来规定FIFO的读写权限。mkfifo函数如果调用成功的话,返回值为0;如果调用失败返回值为-1。 mkfifo函数的作用是在文件系统中创建一个文件,该文件用于提供FIFO功能,即命名管道。前边讲的那些管道都没有名字,因此它们被称为匿名管道,或简称管道。对文件系统来说,匿名管道是不可见的,它的作用仅限于在父进程和子进程两个进程......【阅读全文】
发布时间:2012-12-10 13:51:59
消息队列消息队列是消息的链接表,存放在内核中并有消息队列标识符标识。int msgget(key_t key,int flag) 用于创建一个新队列或打开一个现存的队列。int msgsend(int msqid,void *ptr,size_t bytes,int flag)将新消息增加到队列尾端。每个消息包含一个正长整型类型字段,一个非负长度以及实际数据字节,所有这些都在将消息增加到队列时,传送给msgsend。msqid为消息队列id,ptr为指向要发送的消息地址的指针,消息的结构可定义为struct msg{int type;char buf[20];};bytes为发送消息有字节数,......【阅读全文】
发布时间:2012-12-10 13:51:54
linux下的管道机制是需要两个进程有亲缘关系才可以的.但是命名管道(FIFO)却没有这个限制. 不过命名管道却有着下面的规则:< 网上有个哥们儿总结得不错, 就先借用他的原话了. >a. 不使用O_NONBLOCK标志时,只读open要阻塞到某个其它进程为写而打开它为止b. 不使用O_NONBLOCK标志时,只写open要阻塞到某个其它进程为读而打开它为止c. 如果在open的时候指定O_NONBLOCK标志,当只读open时,没有进程为写而打开FIFO的话,会返回-1,只写open时,没有进程为读而打开FIFO的话也会返回-1表示失败。以上的情况使FIFO的使用带来了......【阅读全文】
发布时间:2012-12-10 13:51:41
这两天岳母在家,自己的生活节奏有点乱,呵呵,只能写写比较简单的东西,好久不写博客也不像话。觉得东西比较幼稚的筒子就一笑而过好了,呵呵。 前一阵子装系统,两天装CentOS,RHEL,Fedora,Mint,Ubuntu,结果不小心把我的老的Ubuntu里面的code都给弄丢了。现在既然学会了利用github,我就再写一份,一来复习一下,二来万一将来需要写类似的代码,可以快速的拿来用。 代码都在https://github.com/manuscola/stack,需要的筒子可以去取一份。......【阅读全文】