- 博客(7)
- 资源 (2)
- 收藏
- 关注
原创 UNIX环境高级编程(7):文件和目录(1)
stat、fstat、lstat函数:本章讨论的中心是三个stat函数以及它们返回的信息:#include int stat(const char *restrict pathname,struct stat *restrict buf);int fstat(int filedes, struct stat *buf);int lstat(const char *restric
2015-08-31 20:34:17 789
原创 UNIX环境高级编程(6):文件I/O(2)
文件共享:UNIX系统支持在不同进程间共享打开的文件。内核使用三种数据结构表示打开的文件,他们之间的关系决定了在文件共享方面一个进程对另一个进程可能产生的影响:(1)每个进程在进程表中都有一个记录项,记录项中包含有一张打开文件描述符表,可将其视为一个矢量,每个描述符都占用一项,与每个文件描述符相关联的是:文件描述符标志指向一个文件表项的指针(2)内核为所有打开文件维护一张文
2015-08-23 19:08:19 1095
原创 UNIX环境高级编程(5):文件I/O(1)
UNIX系统中的大多数文件I/O只需要用到5个函数:open、read、write、lseek以及close。本章说明的函数经常称为“不带缓冲的I/0”,术语不带缓冲指的是每个read和write都调用内核中的一个系统调用。这些不带缓冲的I/O函数不是ISO C的组成部分,但是它们是POSIX.1和Single UNIX Specification的组成部分。文件描述符:对内核而言,所有打
2015-08-23 19:06:14 855
原创 UNIX环境高级编程(4):UNIX标准化及实现(2)
不确定的运行时限制:如果某些限制值没有在中定义,则在编译时不能使用这些限制;而且即使对于运行时限制,如果它们的值是不确定的,那么它们也是未定义的。如下的程序用来为路径名动态分配存储区(一般来说,很多程序在编译时就为其分配了存储区,而且不同的程序使用不同的幻数,例如256,512,1024或标准I/O常量BUFSIZ,但很少是正确的)。/* * Copyright (C) fuchen
2015-08-20 21:11:19 783
原创 UNIX环境高级编程(3):UNIX标准化及实现(1)
虽然UNIX应用程序在不同的UNIX操作系统版本之间进行移植相同容易,但是20世纪80年代UNIX版本的剧增以及它们之间的差别扩大,导致很多用户呼吁对其进行标准化。标准化工作的一个重要部分是对每种实现必须定义的各种限制进行说明。UNIX标准化:ISO C:1989年,C程序设计语言的ANSI标准X3.159-1989得到批准,随后该标准被采纳为国际标准ISO/IEC 9899:1990
2015-08-20 21:09:48 947
原创 UNIX环境高级编程(2):概述(2)
出错处理:当UNIX函数出错时,常常返回一个负值,而且整型变量errno通常被设置为包含附加信息的一个值。头文件中定义了符号errno以及可以赋予它的各种常量,这些常量都以字符E开头。而且UNIX系统手册第2部分的intro(2)列出了所有这些出错常量(在Linux中,这些出错常量在errno(3)手册页中列出)。在支持线程的环境中,多个线程共享进程地址空间,每个线程都有属于它自己的局部e
2015-08-19 21:41:26 763
原创 UNIX环境高级编程(1):UNIX基础知识(1)
本系列文章是学习被誉为UNIX编程圣经的《UNIX环境高级编程》的读书笔记。《UNIX环境高级编程》的英文全称为《Advanced Programming in the UNIX Environment》,简称《APUE》,其作者是UNIX和网络技术领域的知名专家W.Richard Stevens。本书描述了UNIX系统的程序设计接口:系统调用接口和标准C库提供的很多函数。与大多数操作系统一样
2015-08-19 21:39:24 1542
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人