4. 贯穿案例2:mini shell(3) (1)之前存在问题 ①刚运行时,mshell作为前台进程.运行的其他命令会被加入新的进程组,并且调用tcsetpgrp将这个进程组设置为前台进程组,因此mshell本身所在的进程组就成为后台进程组 ②SIGTTIN信号表示后台进程组的成员读控制终端时会产生的信号.而SIGTTOU信号表示后台进程组的成员写控制终端是产生的信号.这两个信号的默认操作是暂停进程.因此mshell上运行一些命令后,处于后台进程的mshell会试图返回到提示符状态下,这将导致…
第10章 文件及目录操作 10.1 基本文件操作 在Python中,内置了文件(File)对象.在使用文件对象时,首先需要通过内置的open() 方法创建一个文件对象,然后通过对象提供的方法进行一些基本文件操作.例如,可以使用文件对象的write() 方法向文件中写入内容,以及使用close() 方法关闭文件等.下面将介绍如何应用Python的文件对象进行基本文件操作. 10.1.1 创建和打开文件 在Python中,想要操作文件需要先创建或者打开指定的文件并创建文件对象,通过内置的open()…
5. 贯穿案例2:mini shell(2) (1)己经完成的功能:pwd.cd.exit命令 (2)阶段性目标: ①env.export.echo及其他命令 ②标准输入.输出重定向">"."<".">>" ③设置后台进程 (3)存在问题:当mshell(后台进程)要读写终端时(如执行date时),进程会被暂停.解决方案见下一章的<信号> [编程实验]mini  shell //job.h #ifndef __…
第三章说明了关于文件I/O的基本函数,主要是针对普通regular类型文件.本章描述文件的属性,除了regular文件还有其他类型的文件. 函数stat.fstat.fstatat和lstat stat系列函数用于返回文件的属性信息,比如文件类型.大小.所有者.访问修改时间等.其头文件及函数原型如下: #include <sys/stat.h> int stat (const char *restrict file, struct stat *restrict buf); int fstat…
本章将描述文件系统的其他特性和文件的性质. 函数stat.fstat.fstatat和lstat #include <sys/stat.h> int stat(const char *restrict pathname,struct stat *restrict buf); int fstat(int fd,struct stat *buf); int lstat(const char *restrict pathname,struct stat *restrict buf); int fst…
15.1 chmod:更改文件和目录的模式 15.2 chown:更改文件和目录的用户所有者和组群所有者 15.3 chgrp:更改文件或目录的所属组 15.4 umask:显示和设置文件及目录创建默认权限掩码 15.5 getfacl:显示文件或目录的ACL 15.6 setfacl:设置文件或目录的ACL 15.7 chacl:更改文件或目录的acl 15.8 lsattr:查看文件和目录的属性 15.9 chattr:更改文件和目录的属性 15.1 chmod:更改文件和目录的模式 15.…
文件系统: 以UNIX系统V文件系统为例: 磁盘分为区,每个分区都有自己的文件系统: ​ i节点是固定长度的记录项,包含了文件的相关信息.目录项包含文件名和i节点号.stat结构中除文件名和i节点编号之外的数据都包含在i节点中 在进行文件索引的时候会首先找到目录项,根据目录项的i节点号找到i节点,i节点中包含了若干数据块的引用,这些数据块就是文件内容.目录项只是对i节点的引用 多个目录项可以引用相同的i节点,i节点将记录引用它的目录项的个数,只有在没有目录项引用它的时候才可以删除其中的数据.所以…
1. stat结构的基本形式: on error 24. 设备特殊文件 每个文件系统所在的存储设备都由其主.次设备号表示. 设备号所用的数据类型是基本系统数据类型dev_t. 主设备号标识设备驱动程序,有时编码为与其通信的外设板:次设备号标识特定的子设备. 在同一磁盘驱动器上的各文件系统通常具有相同的主设备号,但是次设备号却不同. 可以使用两个宏:major和minor来访问主.次设备号. 系统中与每个文件名关联的st_dev值是文件系统的设备号,该文件系统包含了这一文件名以及其对应的i节点.…
获取文件属性 #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> int stat(const char *pathname, struct stat *buf); int fstat(int fd, struct stat *buf); int lstat(const char *pathname, struct stat *buf); #include <fcntl.h> #i…
4 - 文件和目录 1. 函数 stat.fstat.fstatat 和 lstat #inlcude <sys/stat.h> int stat(const char *restrict pathname, struct stat *restrict buf); int fstat(int fd, struct stat *buf); int lstat(const char *restrict pathname, struct stat *restrict buf); int fstata…