习题答案全
一、选择题 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 表示的权限使用字母的方式表示为(rwwxr-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 对应的文件上, 则应使用语句 (dup26,1) 。 30.系统调用( Unlink)的作用是删除目录项,这里的目录项是指(文件名和文件i 节点的 对应关系) 。 31.打开目录使用(DIR *opendirconst char *name)系统调用,关闭目录使用( int closedirDIR *dir)系统调用,读取目录内容使用(struct dirent *readdirDIR *dir) 系统调用。 32.chdir 系统调用的功能是(改变当前目录) 。 33.创建目录使用(int mkdirconst char *pathname, mode_t mode )系统调用、删除目 录使用(int rmdirconst 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