APUE(3)---文件I/O (2)】的更多相关文章

. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编程 (APUE) 之 文件和目录 (四) 一起学 Unix 环境高级编程 (APUE) 之 系统数据文件和信息 (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境 (六) 一起学 Unix 环境高级编程 (APUE) 之 进程控制 (七) 一起学 Unix 环境高级编程 (APUE)…
. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编程 (APUE) 之 文件和目录 (四) 一起学 Unix 环境高级编程 (APUE) 之 系统数据文件和信息 (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境 (六) 一起学 Unix 环境高级编程 (APUE) 之 进程控制 (七) 一起学 Unix 环境高级编程 (APUE)…
参考:http://blog.csdn.net/nihaotoyou/article/details/16827675 1.首先到该书的官网下载源代码:http://www.apuebook.com/ 2.解压到当前用户目录下 tar zxvf apue.2e 3.进入该目录下修改两个文件 Make.defines.linux:将该文件中的WKDIR=/home/xxx/apue.2e 修改为当前实际目录 WKDIR=/home/xxx/apue.2e std/linux.mk:将该文件中的na…
Linux的内核将所有外部设备都可以看做一个文件来操作.那么我们对与外部设备的操作都可以看做对文件进行操作.我们对一个文件的读写,都通过调用内核提供的系统调用:内核给我们返回一个file descriptor(简称:fd,文件描述符). 系统调用是如何完成一个I/O操作的呢? linux将内存分为内核区,用户区: linux内核给我们管理所有的硬件资源,应用程序通过调用系统调用和内核交互,达到使用硬件资源的目的:应用程序通过系统调用read发起一个读操作:这时候内核创建一个文件描述符,并通过驱动…
父子进程间交互执行是指用一种同步原语,实现父进程和子进程在某一时刻只有一个进程执行,之后由另外一个进程执行,用一段代码举例如下: SYNC_INIT(); , counter=; pid_t pid = fork (); ) err_sys ("fork error"); ) { // parent ; i<NLOOPS; i+=) { counter = update ((long *)area); if (counter != i) err_quit ("paren…
前言 说到 linux 上的文件权限,其实我们在说两个实体,一是文件,二是进程.一个进程能不能访问一个文件,其实由三部分内容决定: 文件的所有者.所在的组: 文件对所有者.组用户.其它用户设置的权限访问位: 启动进程的用户.所在的组.有效用户.有效用户组. 下面先简单说明一下这些基本概念,最后再说明它们是如何相互作用并影响进程访问文件的. 用户与组 用户 ID 唯一标识一个登录用户,记录在口令文件 (/etc/passwd) 中.ID 为 0 的用户为超级用户或根用户 (root),具有绕过文件…
[a] 概念 建议锁:在遵循相同记录锁规则的进程间生效,通常用于保证某个程序自身多个进程间的数据一致性 强制锁:意在保证所有进程间的数据一致性,但不一定有效:如不能应对先 unlink 后建立同名副本的行为 [b] fcntl #include <fcntl.h> int fcntl(int fd, int cmd, struct flock *flockp) //出错返回 -1  struct flock { short l_type; //锁类型:F_RDLCK / F_WRLCK / F…
[a] stat / lstat / fstat #include <sys/stat.h> int stat(const char *restrict pathname, struct stat *restrict buf)int lstat(const char *restrict pathname, struct stat *restrict buf) int fstat(int fd, struct stat *buf) struct stat { mode_t st_mode; in…
[a] open #include <fcntl.h> int open(const char *path, int oflag, ... ,mode_t mode) 成功返回文件描术符, 失败返回 -1 oflag: O_RDONLY / O_WRONLY / O_RDWR / O_EXEC / O_APPEND / O_CLOEXEC / O_CREAT / O_EXCL / O_NONBLOCK / O_NOFOLLOW / O_SYNC / O_TRUNC / O_DSYNC ...…
文件,目录,权限 1. 用名称打开任一个类型的文件时,对该名字中包含的每一个目录,包括它可能隐含的当前工作目录都应该具有执行权限:这就是目录执行权限通常被称为搜索位的原因: 例如:为了打开文件/usr/include/stdio.h,需要对目录/./usr./usr/include具有执行权限:而具有对文件本身的适当权限,取决于以何种模式打开它: 注意:对目录的读权限和执行权限的意义是不同的,读权限允许我们读目录,获得在该目录中的所有文件名的列表:而执行权限决定是否有资格搜索该目录: 2. 对于…