UNIX环境高级编程
文章平均质量分 62
1314ZYX
这个作者很懒,什么都没留下…
展开
-
/etc/passwd 详解
root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin desktop:x:80:80:desktop:/var/lib/menu/kde:/sbin/nologin mengqc:x:500:50转载 2014-09-05 09:42:00 · 414 阅读 · 0 评论 -
SIGPIPE信号
当服务器close一个连接时,若client端接着发数据。根据TCP协议的规定,会收到一个RST响应,client再往这个服务器发送数据时,系统会发出一个SIGPIPE信号给进程,告诉进程这个连接已经断开了,不要再写了。根据信号的默认处理规则SIGPIPE信号的默认执行动作是 terminate(终止、退出), 所以client会退出。若不想客户端退出可以把 SIGPIPE设为SIG_IGN转载 2014-12-04 16:22:52 · 425 阅读 · 0 评论 -
实际用户ID”、“有效用户ID”和“保存的设置用户ID”
实际用户ID:有的文章中将其称为真实用户ID,这个ID就是我们登陆unix系统时的身份ID。有效用户ID:定义了操作者的权限。有效用户ID是进程的属性,决定了该进程对文件的访问权限。 一、文件的访问权限包括读写和执行。判断某个进程对文件有何权限时,内核会将非超级用户进程的有效ID与文件的所有者ID进行比较,当然,也可能需要比较有效组ID,这关系到具体的权限测试方法,先不在这里说明。转载 2014-09-11 10:38:35 · 985 阅读 · 0 评论 -
getc()与putc()
putc(将一指定字符写入文件中) 相关函数 fopen,fwrite,fscanf,fputc 表头文件 #include 定义函数 int putc(int c,FILE * stream); 函数说明 putc()会将参数c转为unsigned char后写入参数stream指定的文件中。虽然putc()与fputc()作用相同,但put转载 2014-09-09 10:00:50 · 517 阅读 · 0 评论 -
fork函数
头文件12#include/*#包含*/#include/*#包含*/函数原型pid_t fork( void);(pid_t 是一个宏定义,其实质是int 被定义在#includesys/types.h>中)返回值: 若成功调用一次则返回两个值,子进程返回0,父进程返回转载 2014-09-09 10:35:47 · 447 阅读 · 0 评论 -
exec族函数
exec函数族,顾名思义,就是一簇函数,他把当前进程映像替换成新的程序文件,而且该程序通常main函数开始执行。目录1编程函数2函数作用3执行1编程函数编辑用fork函数创建子进程后,子进程往往要调用一种exec函数以执行另一个程序。当进程调用一种exec函数时,该进程完全由新程序代换,转载 2014-09-09 10:14:01 · 341 阅读 · 0 评论 -
fgets()函数
函数原型char *fgets(char *buf, int bufsize, FILE *stream);参数*buf: 字符型指针,指向用来存储所得数据的地址。bufsize: 整型数据,指明存储数据的大小。*stream: 文件结构体指针,将要读取的文件流。返回值成功,则返回第一个参数buf;在读字符时遇到end-o转载 2014-09-09 09:54:10 · 449 阅读 · 0 评论 -
内核缓存区和write行为
应用缓冲技术能很明显的提高系统效率。内核与外围设备的数据交换,内核与用户空间的数据交换都是比较费时的,使用缓冲区就是为了优化这些费时的操作。其实核心到用户空间的操作本身是不buffer的,是由I/O库用buffer来优化了这个操作。比如read本来从内核读取数据时是比较费时的,所以一次取出一块,以避免多次陷入内核。 内核缓冲区的 主要思想就是一次读入大量的数据放在缓冲区,需要的时候从转载 2014-09-05 17:32:50 · 2253 阅读 · 0 评论 -
不带缓存的I/O和标准(带缓存的)I/O
首先,先稍微了解系统调用的概念: 系统调用,英文名system call,每个操作系统都在内核里有一些内建的函数库,这些函数可以用来完成一些系统系统调用把应用程序的请求传给内核,调用相应的的内核函数完成所需的处理,将处理结果返回给应用程序,如果没有系统调用和内核函数,用户将不能编写大型应用程序,及别的功能,这些函数集合起来就叫做程序接口或应用编程接口(Application Pro转载 2014-09-05 16:47:07 · 348 阅读 · 0 评论 -
标准输入标准输出标准错误重定向
重定向操作符描述>将命令输出写入到文件或设备(如打印机),而不是命令提示符窗口或句柄。从文件而不是从键盘或句柄读入命令输入。>>将命令输出添加到文件末尾而不删除文件中已有的信息。>&将一个句柄的输出写入到另一个句柄的输入中。从一个句转载 2014-09-05 16:24:15 · 552 阅读 · 0 评论 -
Linux下DIR,dirent,stat等结构体详解
最近在看Linux下文件操作相关章节,遇到了这么几个结构体,被搞的晕乎乎的,今日有空,仔细研究了一下,受益匪浅。首先说说DIR这一结构体,以下为DIR结构体的定义:struct __dirstream { void *__fd; char *__data; int __entry_data转载 2014-09-05 15:37:00 · 285 阅读 · 0 评论 -
read函数阻塞和非阻塞
read函数只是一个通用的读文件设备的接口。是否阻塞需要由设备的属性和设定所决定。一般来说,读字符终端、网络的socket描述字,管道文件等,这些文件的缺省read都是阻塞的方式。如果是读磁盘上的文件,一般不会是阻塞方式的。但使用锁和fcntl设置取消文件O_NOBLOCK状态,也会产生阻塞的read效果转载 2014-09-05 18:06:58 · 4174 阅读 · 1 评论 -
stat 函数和命令
表头文件: #include #include 定义函数: int stat(const char *file_name, struct stat *buf);函数说明: 通过文件名filename获取文件信息,并保存在buf所指的结构体stat中返回值: 执行成功则返回0,失败返回-1,错误代码存于errno转载 2014-09-05 10:18:30 · 693 阅读 · 0 评论 -
ubuntu中没有/etc/inittab文件探究
linux 启动时第一个进程是/sbin/init,其主要功能就是软件执行环境,包括系统的主机名、网络设置、语系处理、文件系统格式及其他服务的启动等。其配置文件就是/etc/inittab,但在我的ubuntu10.10却没有找到此文件。原来ubuntu中使用/etc/event.d这个目录,完成相似的功能。ubuntu9.10版本的upstart不再用/etc/event.d这个目录了。而是转载 2014-12-05 15:55:37 · 449 阅读 · 0 评论