摘要: Every process has six or more IDs associated with it. These are shown in Figure 4.5. Figure 4.5. User IDs and group IDs associated with each process real user ID real group IDwho we really areeffective user ID effective group ID supplementary group IDsused for file access perm... 阅读全文
posted @ 2012-10-06 23:01 beanmoon 阅读(385) 评论(0) 推荐(0) 编辑
摘要: Most files on a UNIX system are either regular files or directories, but there are additional types of files. The types are:Regular file. The most common type of file, which contains data of some form. There is no distinction to the UNIX kernel whether this data is text or binary. Any interpretation 阅读全文
posted @ 2012-10-06 22:04 beanmoon 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 'Restrict'PointersOneofthenewfeaturesintherecentlyapprovedCstandardC99,istherestrictpointerqualifier.Thisqualifiercanbeappliedtoadatapointertoindicatethat,duringthescopeofthatpointerdeclaration,alldataaccessedthroughitwillbeaccessedonlythroughthatpointerbutnotthroughanyotherpointer.The'r 阅读全文
posted @ 2012-10-06 21:44 beanmoon 阅读(394) 评论(0) 推荐(0) 编辑
摘要: Linux重定向是指修改原来默认的一些东西,对原来系统命令的默认执行方式进行改变,比如说简单的我不想看到在显示器的输出而是希望输出到某一文件中就可以通过Linux重定向来进行这项工作。 Linux默认输入是键盘,输出是显示器。你可以用重定向来改变这些设置。比如用wc命令的时候本来是要手动输入一篇文字来计算字符数的,用了重定向后可以直接把一个已经写好的文件用‘<’指向这条命令,就直接可以统计这个文件的字符数等了。输出也是一样,你可以把屏幕输出重定向到一个文件里,再到文件里去看结果。重定向操作符可以用来将命令输入和输出数据流从默认位置重定向到其他位置,其输入或输出数据流的位置称为句柄(是某个 阅读全文
posted @ 2012-10-05 12:58 beanmoon 阅读(365) 评论(0) 推荐(0) 编辑
摘要: 1、 管道概述及相关API应用1.1 管道相关的关键概念管道是Linux支持的最初Unix IPC形式之一,具有以下特点:管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道;只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程);单独构成一种独立的文件系统:管道对于管道两端的进程而言,就是一个文件,但它不是普通的文件,它不属于某种文件系统,而是自立门户,单独构成一种文件系统,并且只存在与内存中。数据的读出和写入:一个进程向管道中写的内容被管道另一端的进程读出。写入的内容每次都添加在管道缓冲区的末尾,并且每次都是从缓冲区的头部读出数据。1.2管道的创建:#include 阅读全文
posted @ 2012-09-26 18:10 beanmoon 阅读(667) 评论(0) 推荐(0) 编辑
摘要: 先看一段代码: 1: char greeting[] = “Hello”; 2: char* p = greeting; //non-const pointer,non-const data 3: const char* p = greeting; //non-const pointer,const data; 4: char* const p = greeting;//const pointer,non-const data; 5: const char* const p = greeting; //const pointer,const data; 6: 关于定义的阅读,一直以... 阅读全文
posted @ 2012-09-23 16:22 beanmoon 阅读(3442) 评论(0) 推荐(0) 编辑
摘要: 概述由于在C语言中没有函数重载,解决不定数目函数参数问题变得比较麻烦;即使采用C++,如果参数个数不能确定,也很难采用函数重载.对这种情况,有些人采用指针参数来解决问题.下面就c语言中处理不定参数数目的问题进行讨论.定义大家先看几宏.在VC++6.0的include有一个stdarg.h头文件,有如下几个宏定义:#define _INTSIZEOF(n) ((sizeof(n)+sizeof(int)-1)&~(sizeof(int) - 1) )#define va_start(ap,v) ( ap = (va_list)&v + _INTSIZEOF(v) ) //第一个可 阅读全文
posted @ 2012-09-23 13:18 beanmoon 阅读(220) 评论(0) 推荐(0) 编辑
摘要: C语言代码是以文件为单位来组织的,在一个源程序的所有源文件中,一个外部变量(注意不是局部变量)或者函数只能在一个源程序中定义一次,如果有重复定义的话编译器就会报错。伴随着不同源文件变量和函数之间的相互引用以及相互独立的关系,产生了extern和static关键字。 下面,详细分析一下static关键字在编写程序时有的三大类用法: 一,static全局变量 我们知道,一个进程在内存中的布局如图1所示: 其中.text段保存进程所执行的程序二进制文件,.data段保存进程所有的已初始化的全局变量,.bss段保存进程未初始化的全局变量(其他段中还有很多乱七八糟的段,暂且不表)。在进程的整个生命周.. 阅读全文
posted @ 2012-09-22 22:47 beanmoon 阅读(202) 评论(0) 推荐(0) 编辑
摘要: (1)exec函数说明fork函数是用于创建一个子进程,该子进程几乎是父进程的副本,而有时我们希望子进程去执行另外的程序,exec函数族就提供了一个在进程中启动另一个程序执行的方法。它可以根据指定的文件名或目录名找到可执行文件,并用它来取代原调用进程的数据段、代码段和堆栈段,在执行完之后,原调用进程的内容除了进程号外,其他全部被新程序的内容替换了。另外,这里的可执行文件既可以是二进制文件,也可以是Linux下任何可执行脚本文件。(2)在Linux中使用exec函数族主要有以下两种情况当进程认为自己不能再为系统和用户做出任何贡献时,就可以调用任何exec 函数族让自己重生。如果一个进程想执行另一 阅读全文
posted @ 2012-09-22 13:35 beanmoon 阅读(1212) 评论(0) 推荐(1) 编辑
摘要: 进入Dired模式1. 在终端中:输入emacs 和给定目录名 >>>emacs dirname >>>emacs dirname &;;#表示在后台运行,此时你还可以使用该终端做其他事情2. 在Emacs中:C-x C-f dirname;;打开一个目录C-x d;;也就是绑定到下面这个函数M-x dired说明:进入dired后的命令大多是一个字符,比如键入s表示对类别按照时间排序,键入m表示对该文件进行标记,所以下面如果类别一个字符那说明只按那个键就可以了;如果后面有";;"则表示是对该命令的解释(;;是elisp注释语句) 阅读全文
posted @ 2012-09-22 08:25 beanmoon 阅读(1577) 评论(0) 推荐(0) 编辑