习题答案全
一、选择题 1.下列那个命令不是显示多个环境变量的C A.set B.export C.pwd D.env 2.获取某个环境变量值使用函数A A.getenv B.putenv C.setenv D.unsetenv 3.文件系统保存在磁盘的 B A.引导块 B.超级块节点块 D.数据块 4.Linux 文件系统的根目录的 i 节点号为C A. 0B. 1 5.文件描述符的数据类型是B A. char 6.设置文件偏移量的系统调用是C A. truncateB. syncC . lseek 7.下面那个不是 lseek 第三个参数的取值 C 8.Sync 系统调用的功能是 A A.刷新所有缓存到磁盘 B.刷新缓存中某个文件的所有信息到磁 盘 C.刷新缓存中某个文件的数据到磁盘D.刷新磁盘中某个文件的属性信息到磁 盘 9.Fsync 系统调用的功能是 B A.刷新所有缓存到磁盘 B.刷新缓存中某个文件的所有信息到磁 盘 C.刷新缓存中某个文件的数据到磁盘D.刷新磁盘中某个文件的属性信息到磁 盘 10.Fdata 系统调用的功能是 C A.刷新所有缓存到磁盘 B.刷新缓存中某个文件的所有信息到磁 盘 C.刷新缓存中某个文件的数据到磁盘D.刷新磁盘中某个文件的属性信息到磁 盘 11.可以使用(C)系统调用获得符号链接所引用文件名称 12.获得工作路径名称的系统调用是A 13.通过文件属性中的 uid 获得文件拥有者名字的系统调用是B 14.通过文件属性中的 gid 获得文件所属组名字的系统调用是C 15.根据文件路径来改变文件权限使用系统调用是B 二、填空题 1.关于 Linux 的版本有两种不同的称呼:一种是内核版本,一种是发行版本。 2.Vi 的三中工作模式:插入模式、命令模式、末行模式。 3.Gcc 生成可执行文件的四个步骤:预处理、编译、汇编、链接。 4.Makefile用来描述程序或工程中各个文件之间的相互联系 5.make。命令用来及时 makefile 文件中的命令 6.库分为 静态库和共享库。 7.命令行参数是 main。函数的参数 8.Main 函数的参数若有两个参数则第一个参数代表命令行参数个数、第二个参数代表指向 各命令行参数字符串的指针数组。 9.Linux 中日期时间的表示方法有:算术类型、结构体类型、字符串类型。 10. 使用 time 函数获得的时间是算术类型、 代表自 1970 年 1 月 1 日零时到当前时间的秒数。 11.把算数类型时间表示转换成结构体类型使用()函数localtime。 12.把算数类型时间表示转换成字符串类型使用()函数ctime。 13.Maketime 函数把()类型时间表示转换成()类型时间表示结构体、算术。 14.如果一个 C 程序的入口表示为 main(int argc,char *argv[]) ,编译该程序后的可执 行程序为,那么在命令“./ –f foo”后,main 中的参数 argv[1]指向的字符串是( “-f” ) 。 15.Linux 系统下表示标准输入、标准输出和标准错误输出的文件描述符(符号表示)分别 为(STDIN_FILENO、STDOUT_FILENO 、STDERR_FILENO) ,它们的值分别为 0、1、2。 16.数字 635 表示的权限使用字母的方式表示为(rw—wxr-x) 、使用符号方式表示为 (S_IRUSR | S_IWUSR | S_IWGRP | S_IXGRP | S_IROTH | S_IXOTH) 。 17.系统调用 open 的功能是打开或创建文件。 18.使用 open 打开文件时有三个标志必须要选择其一, 这三个标志是 O_RDONLY、 O_WRONLY、 O_RDWR。 19.文件偏移量代表下一次读或写的位置。 20.将文件偏移量市值为当前偏移处之前的4 个字节的维护使用lseek(fd, (-4) , (SEEK_CUR) ) 。 21.设置打开文件标志(O_TRUNC) ,可以截断文件为0,使用系统调用(truncate)可以截 断文件或者加长文件。 22.如果 umask 设置为 022,则创建一个新文件夹(数字表示)的权限为( 644) 、创建一个 新目录的权限为(755) 。 23.如果 umask 设置为 024,则创建一个新文件夹(数字表示)的权限为( 642) 、创建一个 新目录的权限为(753) 。 24.使用系统调用(umask)可以设置和得到文件模式的屏蔽字。 25.创建硬链接使用系统调用(link) ,创建符号链接使用系统调用(symlink) 。 26.获得工作路径名称的系统调用是(getcwd) 。 27.可以使用(stat 或 fstat 或 lstat)系统调用显示文件属性信息。 28.chmod,chown,utime 都可以修改文件 i 节点信息,其中chmod 的功能是(更改文件权 限) 、chown 的功能是(更改文件所有者和所属组) 、utime 的功能是(更改文件访问时间和 修改时间) 。 29. 若实现将标准输出重定向到文件描述符为6 对应的文件上, 则应使用语句 (dup2(6,1)) 。 30.系统调用( Unlink)的作用是删除目录项,这里的目录项是指(文件名和文件i 节点的 对应关系) 。 31.打开目录使用(DIR *opendir(const char *name))系统调用,关闭目录使用( int closedir(DIR *dir))系统调用,读取目录内容使用(struct dirent *readdir(DIR *dir)) 系统调用。 32.chdir 系统调用的功能是(改变当前目录) 。 33.创建目录使用(int mkdir(const char *pathname, mode_t mode) )系统调用、删除目 录使用(int rmdir(const char *pathname))系统调用。 三、简答题 1.关于 Linux 的版本有两种不同的称呼: 一种是内核版本,一种是发行版本。 2.简述 Linux 操作系统的特点 3.系统调用、库函数的区别和练习 从用户角度观察, 系统调用和库函数都以C 函数形式出现, 提供给用户一种功能实现的 接口,需要用户输入指定的参数,调用结束得到指定的返回值。 从实现者角度观察, 库函数是在系统调用上层的函数, 库函数一般指程序员可以使用的通用 函数。 系统调用由两部分组成: (1)核心函数:是实现系统调用功能的代码,作为操作系统的核心驻留在内存中,是一种 共享代码。运行在核心态。 (2)接口函数:是提供给应用程序的 API,以库函数的形式存在于 Linux 的中,该库中存 放了所有系统调用的接口函数的目标代码,用汇编语言书写。其主要功能是把系统调用号, 入口参数地址传给相应的核心函数,并使用户态下运行的应用程序陷入核心态。 4.完成如下命令 (1)新建用户 tom 和用户组 student #useradd tom #passwd tom #groupadd student (2)新建文件 file #touch file