UNIX环境高级编程--第三-四章总结

1.对于内核,所有打开的文件都通过文件描述符(一个非负数)引用,

    文件描述符0与进程的标准输入(stdin)向关联------0被替换为STDIN_FILENO

    文件描述符1与进程的标准输入(stdout)向关联------1被替换为STDOUT_FILENO

    文件描述符2与进程的标准输入(stderr)向关联------2被替换为STDERR_FILENO

2.当一个进程终止时,内核自动关閉它所有打开的文件.

3. ls -ls filename可以看filename所占的磁盘块.

4.fork()后父进程和子进程对于每一个打开文件描述符共享同一个文件表项.

5.许多UNIX系统采用延迟写,为了保证磁盘上实際文件系统与缓冲区高速缓存中内容的一致性,UNIX系统提供了sync,fsync,fdatasync三个函数,sync函数只是将修改过的块缓冲区排入写队列,然后就返回,它并不等待实際写磁盘操作结术.通常称为update的系统守护进程会周期性的(per 30 sec)调用sync函数.这就保证了定期冲洗内核缓冲区.

6.DIR *opendir(const char *pathname)   DIR结构是一个内部结构,作用类似于FILE结构.FILE结构由标准I/O库維护.

7.使用stat函数最多的可能是ls -l命令,用其可以获得有关一个文件的所有信息.

8.所有二进制可执行文件都遵循一种格式,这种格式能够确定文本和数据的加载位置.

9.因为当前工作目录是进程的一个屬性,所以它只影响调用chdir()的进程本身,而不影响其他进程.---------chdir()函数可以更改当前工作目录.

10.getcwd()可以得到当前工作目录完整的绝对路径名.-----------当一个应用程序需要在文件系统中返回到其工作的起点时,getcwd函数是有用的,在更换工作目录之前,我们可以调用getcwd函数先将其保存起来.在完成处理后,就可以将从getcwd获得的路径名作为调用参数传送给chdir,这样就返回到了文件系统中的起点.

你可能感兴趣的:(UNIX环境高级编程--第三-四章总结)