Unix环境高级编程
yofer张耀琦
我喜欢自己开朗的性格
展开
-
shell-like program(shell程序的基本实施部分)
直接上代码: #include "apue.h" #include int main(void) { char buf[MAXLINE]; /* form apue.h 4096 */ pid_t pid; int status; printf("%% "); /* print promt (printf requires %% to p原创 2015-08-16 10:09:58 · 1317 阅读 · 0 评论 -
apue.h头文件(UNIX环境高级编程)
相信很多初学《UNIX环境高级编程》的朋友都会遇到一个问题,运行里面的实例(download: http://www.apuebook.com/ )时就出现问题,提示 "错误:apue.h:没有那个文件或目录". apue.h是作者自定义的一个头文件,包括程序所需的常用头文件及出错处理函数。所以因该将它放入系统头文件中(Linux下是 /usr/include),这样gcc编译器就可以找到它了。原创 2015-08-14 12:46:05 · 1376 阅读 · 0 评论 -
Unix - ls命令的简要实现
#include 是POSIX.1标准定义的unix类目录操作的头文件,包含了许多UNIX系统服务的函数原型,例如opendir函数、readdir函数. opendir函数: DIR *opendir(const char *pathname);返回值:若成功则返回指针,若出错则返回NULL。 struct dirent *readdir(DIR *dp); 返回值:若成功则返回指针,若原创 2015-08-14 14:34:11 · 2262 阅读 · 0 评论 -
Unix - 文件中构成一个空洞的分析
lseek函数显示地为一个打开文件设置偏移量,文件偏移量可以大于文件的当前长度,在这种情况下,对该文件的下一次写将加长该文件,并在文件中构成一个空洞,这一点是允许的。位于文件中但没有写过的字节都被读为0。 eg: holeFile.c函数创建了一个具有空洞的文件,运行观察: 可以看到,文件中的30个未写入字节都被设置读为0。每一行开始的一个7位数是以八进制形式表示的字节偏移量原创 2015-08-17 10:05:26 · 1237 阅读 · 0 评论 -
用O_APPEND标志open一个文件,能否用lseek在任意位置读写
结论比较简单,用O_APPEND打开后,write操作是一个原子操作,所以每次都会自动把偏移量移到文件末尾,所以用lseek不能在任意位置write。但是可以用lseek在任意位置开始读。下面用代码测试来说明: 来看测试结果: 结果很好的说明了之前结论。原创 2015-08-17 19:29:27 · 4153 阅读 · 0 评论 -
测试access函数
测试程序: 测试结果: chown root access.out 将用户ID改为root chmod u+s access.out 打开 set-user-ID位原创 2015-08-17 22:34:58 · 879 阅读 · 0 评论 -
写一个dup2功能相同的函数,不能调用 fcntl 函数,并且要有出错处理
实现的时候用到系统原来的dup函数 // mydup2.c // 2015/08/17 Lucifer Zhang version1.0 // write my own dup2 function // use dup() function when inplementation #include // include dup() #include #include #de原创 2015-08-17 16:58:32 · 1162 阅读 · 0 评论 -
umask函数的用法 - 如何进行权限位的设置
下面程序创建了两个文件,创建foo文件时,umask值为0,创建第二个时,umask值禁止所有组和其他用户的访问权限。 测试结果: 测试结果可以看出更改进程的文件模式掩码并不影响其父进程(常常是shell)的掩码原创 2015-08-18 11:40:18 · 822 阅读 · 0 评论 -
递归降序遍历目录层次结构,并按文件类型计数
本程序使用了一些对目录进行操作的函数编写了一个遍历文件层次结构的程序,最后对各种类型的文件计数。这个程序只有一个参数,它说明起点路径名,从该点开始递归降序遍历文件层次结构。其中还用到了一个为路径名动态分配存储区的函数path_alloc。 // ftw.c // 2015-08-18 Lucifer Zhang // Recursively descend a directory hier原创 2015-08-18 20:15:36 · 1562 阅读 · 0 评论