杂七杂八的linux
文章平均质量分 68
ddppqq
这个作者很懒,什么都没留下…
展开
-
有关Linux文件描述符中的close on exec标志位
首先说明下文件描述符,文件描述符标志,文件状态标志的区别: 文件描述符:标识文件用的; 文件描述符标志(目前就只有一个close-on-exec):仅仅是一个标志,当进程fork一个子进程的时候,在子进程中调用了exec函数时就用到了该标志。意义是执行exec前是否要关闭这个文件描述符; 文件状态标志:是在系统文件表中,关于write、read等标志。 cl原创 2013-10-26 18:16:20 · 1909 阅读 · 1 评论 -
通过互斥量和读写锁来实现进程间通信
一个简单的进程间锁的例子,通过在父进程声明,然后在fork出来的子进程变可以使用这个锁的对象来进程数据访问的互斥控制。直接看代码吧。。#ifndef _SHARE_LOCK_H_#define _SHARE_LOCK_H_//进程间mutex,在父进程定义,fork之后加锁解锁对父子进程间有效class ShareMutex{ public: ShareMutex::Shar转载 2013-10-29 21:29:58 · 792 阅读 · 0 评论 -
Linux下管道使用的一些限制
在书上和网上翻了翻,管道是单向的、先进先出的,它把一个进程的输出和另一个进程的输入连接在一起。一个进程(写进程)在管道的尾部写入数据,另一个进程(读进程)从管道的头部读出数据。Linux管道分为无名管道和命名管道。一、无名管道pipe 无名管道具有以下特点: 1、只能用于具有血缘关系的进程之间,可用于进程或者线程间的通信; 2、半双工的通信模式,具有固定的读端和写原创 2013-10-26 19:01:14 · 1715 阅读 · 0 评论 -
fork后的exec
由fork创建的新进程被称为子进程。子进程和父进程继续执行fork调用之后的指令,子进程是父进程的一个副本。例如,子进程获得父进程数据空间、堆和栈的副本。注意,这是子进程所拥有的副本。父子进程并不共享这些存储空间部分。父子进程共享正文段。 由于在fork后经常跟随者exec,所以现在的很多实现并不执行一个父进程数据段、栈和堆的完全复制。作为替代,使用了写时复制技术,这些区域由父子进程共享原创 2013-10-26 18:35:17 · 2011 阅读 · 1 评论 -
Linux的硬链接和软连接(符号链接)
一、简介 首先要弄清楚,在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号。文件属性保存在索引结点里,在访问文件时,索引结点被复制到内存在,从而实现文件的快速访问。 链接是一种在共享文件和访问它的用户的若干目录项之间建立联系的一种方法。Linux中包括两种链接:硬链接(Hard Link)和软链接(Soft Link),软链接原创 2013-10-08 20:26:58 · 860 阅读 · 0 评论 -
各种Linux错误码
查了下网上的资料,搜寻了下Linux下的各种错误码。摘自/usr/include/asm/errno.h。。如下所示:#ifndef _I386_ERRNO_H#define _I386_ERRNO_H#define EPERM 1 /* Operation not permitted */#define ENOENT 2 /原创 2013-11-28 23:25:48 · 1981 阅读 · 0 评论 -
Unix编程艺术中的17点编程哲学原则
Unix编程艺术中的17点编程哲学原则 ---设计开发者的至高准则 译者:July 二零一一年一月十三日。参考文献:The Art of Unix Programming By Eric Steven Raymond博主说明:本文是依据unix编程艺术一书的英文版,第一章部分章节,所做的翻译。翻译过程中,参考了其中文转载 2013-12-08 17:31:57 · 920 阅读 · 0 评论 -
信号量中的PV操作
一、信号量的概念 1、信号量的类型定义 信号量(semaphore)的数据结构为一个值和一个指针,指针指向等待该信号量的下一个进程。信号量的值与相应资源的使用情况有关。当它的值大于0时,表示当前可用资源的数量;当它的值小于0时,其绝对值表示等待使用该资源的进程个数。注意,信号量的值仅能由PV操作来改变。 一般来说,信号量S>=0时,S表示可用资源的数量。执行一次P操作原创 2014-01-12 15:26:43 · 1941 阅读 · 0 评论 -
线程和fork
一、简介 当线程调用fork时,就为子进程创建了整个进程地址空间的副本,父子进程通过写时复制技术来共享内存页的这一副本。 子进程通过几成整个地址空间的副本,也从父进程那里继承了所有互斥量、读写锁和条件变量的状态。如果父进程包含多个线程,子进程在fork返回后,如果紧接着不是马上调用exec的话,就需要清理锁状态。 在子进程内部只存在一个线程,它是由父进程中调用fork原创 2014-02-27 01:08:56 · 1175 阅读 · 0 评论