Liunx选择

--------------------------------------------------------选择填空------------------------------------------------------------

2.获取目录的系统调用函数为 ( getcwd() )

4.调用进程的进程标识号(pid)的系统函数是 (getpid())

5.一个进程是 (PCB 结构与程序和数据的组合)

6.调用 (abort函数) 不属于正常结束进程的方法

7.(fifo 管道)进程之间的通信,数据不可以重复读

8.pthread_exit (终止线程)

9.函数调用int fcntl(int fd, int cmd);来实现文件描述符的复制,cmd参数应使用 (F_DUPFD)

11.c语言中没有明确给定初值的全局变量和静态变量存放在 (未初始化数据区)

12.修改文件权限命令:( chmod )

13.命令行由( shell )函数提供

14.文件描述符的数据类型( int )

15.Linux下获取文件属性函数:( stat())

16.向消息队列发送信号:msgsnd () 接收队列的函数: msgrcv()

 创建消息队列:msgget() IPC_PRIVATE     

 msgctl()IPC_STAT 获取   IPC_SET 设置   IPC_RMID 删除
  1. shmget()函数用来创建共享内存 IPC_PRIVATE

    shmat()函数 作用就是将共享主存区映射到进程的虚拟地址空间

    shmdt()函数 用于把一个共享主存区从指定进程的虚拟地址空间断开

    shmctl()函数 用来控制共享内存

18.线程的创建函数:pthread_create() 线程分离状态:pthread_detach()

退出线程:pthread_exit()   取消线程:pthread_cancel()

19.互斥锁的两种状态:(上锁 解锁)

21.getpid()获取进程标识号 getppid()获取父进程进程标识号

 getuid()用户识别码 geteuid()有效的用户识别码

25.查看进程的命令:ps

26.在创建文件和目录时候,有默认权限。如果umask值为0022,则文件的默认权限为(0644)目录的默认权限为(0755)

1.linux中把分区和目录对应的过程叫做(挂载)

2.信号是在软件层次上对(中断)机制的一种模拟, 是一种异步通信方式。

3.gcc编译四个阶段:(预处理、编译、汇编和链接)

4.编译有线程的文件要加 (-lpthread)参数

5.父进程等待子进程的结束,可以使用的函数是(wait())和(waitpid())

6.linux主要有两个信号安装函数,分别是什么?(signaction())、(signal())

7.Linux操作系统内核由(c语言和汇编语言)编写完成。

8.目录(/boot)下存放linux操作系统启动时所要用到的程序

9.Linux 系统的设备文件分为三类?(字符设备文件、块设备文件和网络设备文件)

10.Linux 中采用“一对一”的线程机制,也就是一个用户线程对应一个(内核线程)

11.vim三种模式:在命令模式下按下(:(英文冒号))就进入了底线命令模式。

12.Vim的三种模式:(命令模式 插入模式 底线命令模式)

13.标准I/O提供了三种类型的缓冲,分别是 (全缓冲 行缓冲 不带缓冲)

14.文件系统四部分 (引导块,超级块,索引节点,数据块) (超级块)用于存放文件的控制信息。

15.一个完整的信号生命周期包含4个重要的事件,这4个重要事件分别是?(信号诞生、信号在进程中注册、信号在进程中注销、信号处理函数执行完毕)

16.互斥锁只有两种状态,即?(上锁( lock )和解锁( unlock ))

17.线程本身调用(pthread_exit)函数可以退出线程。

18.向消息队列发送消息的函数是(msgsnd)

19.(fcntl)系统调用可以根据文件描述符来操作文件特性。

20.Valgrind包括很多工具,(Memcheck)是valgrind应用最广泛的工具,一个重量级的内存检查器,能够发现开发中绝大多数内存错误使用情况,(Cachegrind)是主要用来检查程序中缓存使用出现的问题。

Memcheck ------> 这是valgrind应用最广泛的工具,一个重量级的内存检查器,能够发现开发中绝大多数内存错误使用情况

Callgrind ------> 它主要用来检查程序中函数调用过程中出现的问题。

Cachegrind ------> 它主要用来检查程序中缓存使用出现的问题。

Helgrind ------> 它主要用来检查多线程程序中出现的竞争问题。

Massif ------> 它主要用来检查程序中堆栈使用中出现的问题。

Extension ------> 可以利用core提供的功能,自己编写特定的内存调试工具

21.信号发送函数中, (alarm)和(setitimer())用于设置定时器,当计时时间到达时,向进程发送SIGALRM信号。

22.在标准IO库中,rewind函数作用?(将文件内部的位置指针重新指向一个流(数据流/文件)的开头)

23.c语言中没有明确给定初值的全局变量和静态变量存放在哪儿?(未初始化数据区)

24.函数geteuid()用于得到进程的? (有效的用户识别码)

25.当一个线程的属性设置为(分离状态 detach),该线程结束时立即释放它所占有的系统资源。

26.(接到一个信号并终止)属于异常终止一个进程

27.(pthread_key_create()) 命令是创建线程私有数据

28.(套接字)通信方式适用于不同机器之间的进程通信

29.linux中通过调用waitpid()函数得到进程的退出信息,该函数原型为pid_t waitpid(pid_t pid, int *status, int options);当第一个参数pid取值为-1时,表示(等待任一子进程退出,相当于 wait())

30.Linux环境中使用kill函数向进程或进程组发送信号。Kill函数原型为

int kill(pid_t pid, int signo);当第一个参数pid>0时表示( 发送信号给进程ID为pid的进程 )

pid>0 将信号传给进程识别码为pid 的进程。

pid=0 将信号传给和目前进程相同进程组的所有进程

pid=-1 将信号广播传送给系统内所有的进程

pid<0 将信号传给进程组识别码为pid绝对值的所有进程

31.修改消息队列状态信息的命令是(msgctl())

32.共享主存基本操作(shmat())将共享主存区映射到进程虚拟地址空间

33.lseek(fd,位移数,whence):设置文件偏移量

33.length=lseek(fd,0,SEEK_END);中的length的值表示 (文件的大小)

34.文件描述符的数据类型:int

35.文件创建目录: ( mkdir())

36.命令行有什么函数提供:shell

37.getpid()获取子进程id getppid()获取父进程id

38.getuid()获取用户id geteuid()获取有效用户id

39.更改目录:cd ;查看当前所在的目录位置: pwd;查看目录下的文件: ls;修改文件权限:chmod;查看进程:ps

40.进程中不能忽略的两个信号?(SIGSTOP和SIGKILL)

41.UDP,TCP属于(传输层)协议。

42.移动指针lseek函数的参数:(lseek(int fd ,off_t offset , int whence))

43.一个进程是 ( PCB 结构与程序和数据的组合)

44.一个进程调用 wait 或 waitpid 函数,可能产生 3 中情况,下列不属于这 3 种情况的是 (如果该进程没有子进程,立即返回,返回值为 0 (异常退出 -1))

45.程序和进程是两个不同的概念,以下不能描述这个观点的是 (同一个程序运行 10 次,产生的是同一个进程)

46.哪种进程之间的通信,数据不可以重复读(fifo、 管道)

47.下述是Linux下多线程编程常用的pthread库提供的函数名和意义,说法不正确的是?(pthread_exit杀死一个线程 —结束进程)

48.对线程函数来说,说法正确的是:(pthread_create中参数arg是传递给start_routine函数的参数)

49.对互斥锁及条件变量说法不正确的是:(在使用条件变量时,互斥锁会失去作用,所以是否有互斥锁关系不重要)

50.以下说明正确的是:(线程是一个独立的指令流,是在进程中被创建的,随进程的关闭而关闭)

51.线程A SendMessage给线程B,线程B处理该消息时又SendMessage给线程A,会出现:(继承执行)

52.linux文件系统通常由四部分组成:引导块,超级块,索引节点和 (数据块)

53.任何进程在运行时默认打开的三个流对象,都有相应的文件描述符,标准文件描述符定义标准输入设备的值为(0)

54.系统调用的函数原型int open(const char *pathname, int flags),flag值中(O_TRUNC)表示若文件存在且为只读或只写成功打开,则将长度截为0。

55.使用下列函数调用int fcntl(int fd, int cmd);来实现文件描述符的复制,cmd参数应使用哪一个?(F_DUPFD)

56.获取目录的系统调用函数为(getcwd())

57.linux 文件系统由四部分组成,(超级块)用于存放文件的控制信息。

58.使用 gdb 调试程序时,next 和 step 命令的作用?(next:单步运行,不进入函数内部; setp:单步运行,进入函数内部)

59.返回调用进程的进程标识号的系统函数是(getpid)

61.进程的堆区:用于动态内存分配。一般由程序员分配和释放,若程序员不释放,程序结束时由 OS 回收。

  1. Linux 文件系统中的块有(根据块使用的不同):引导块、超级块、Inode 块、数据块。 控制信息、文件基本属性等是 Inode 节点,为文件系统索引。存放数据的为数据块。超级块中含有文件系统的基本信息,如块大小、指向空间 inode 和数据块的指针等相关信息。

63.进程运行时默认打开的标准对象:标准输入设备 stdin、标准输出设备 stdout、标准错误 输出设备 stderr

64.修改文件权限命令:chmod、chgrp、chown。

65.文件描述符为?整型。对于用户空间来说,任何打开的文件都将分配一个唯一非负整数, 用于标识该打开文件,该值即文件描述符,为一个大于等于 0 的整数。

66.权限的值?读:4 r 写:2 w 执行:1 x (主 组 其他)

67.获取文件属性,是否穿透?

stat:具有穿透能力,直接穿越链接文件,获取所被链接文件的信息。
lstat:无穿透能力,不穿透链接文件,文件类型还为链接文件。

  1. opendir 函数:打开一个目录,返回一个目录流指针。参数为欲打开目录的名称(路径)。

mkdir 函数:第一个参数是欲创建的目录文件路径,第二个参数是创建目录的权限。

  1. fcntl 函数:修改某个文件描述符的特殊属性

70.创建硬链接的系统调用:link()

71.接受消息队列的函数 msgrcv()

72.自己退出线程的函数:pthread_exit();被取消线程运行:pthread_cancle()

73.互斥锁、条件变量、读写锁的初始化:

互斥锁的初始化:pthread_mutex_init()

条件变量的初始化:pthread_cond_init()

读写锁的初始化:pthread_rwlock_init()

74.读写锁:非阻塞的加锁解锁和阻塞的加锁解锁。

堵塞的方式申请读锁:pthread_rwlock_rdlock()

非堵塞的方式申请读锁:pthread_rwlock_tryrdlock()

堵塞方式申请写锁:pthread_rwlock_wrlock()

非堵塞方式申请写锁:pthread_rwlock_trywrlock()

75.互斥锁的上锁函数是 pthread_mutex_lock(),非阻塞加 try; 解锁函数是 pthread_mutex_unlock()。

76.面向连接的编程:TCP;面向无连接的是:UDP

77.在不同主机间进行通讯的是:scoket 或者是套接字

78.三次握手:连接建立、数据传输、连接释放。

79.创建套接字的函数 scoket()

80.网络编程的常见函数:

监听网络函数:listen()

发起连接函数:connect()

接受连接函数:accept()

读写 scoket 对象:read()/write()

TCP 发送和接受数据:send()/recv()

关闭 scoket 对象:close()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一. 填空题: 1. 在Linux系统中,以 文件 方式访问设备 。 2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统。 3. Linux文件系统中每个文件用 i节点 来标识。 .... 82. 增加一个用户的命令是:adduser 或useradd 。 83 进行字符串查找,使用grep命令。 84. 使用 * 每次匹配若干个字符。 85. /sbin 目录用来存放系统管理员使用的管理程序。 二.单项选择题: 1. 下面的网络协议中,面向连接的的协议是: A 。 A 传输控制协议 B 用户数据报协议 C 网际协议 D 网际控制报文协议 2. 在/etc/fstab文件中指定的文件系统加载参数中, D 参数一般用于CD-ROM等移动设备。 ... 113.不是shell具有的功能和特点的是 C 。 A 管道 B 输入输出重定向 C 执行后台进程 D 处理程序命令 114.下列对shell变量FRUIT操作,正确的是: C 。 A 为变量赋值:$FRUIT=apple B 显示变量的值:fruit=apple C 显示变量的值:echo $FRUIT D 判断变量是否有值:[ -f “$FRUIT” ] 三.简答题: 1.简述Linux文件系统通过i节点把文件的逻辑结构和物理结构转换的工作过程。 参考答案: Linux通过i节点表将文件的逻辑结构和物理结构进行转换。 i节点是一个64字节长的表,表中包含了文件的相关信息,其中有文件的大小、文件所有者、文件的存取许可方式以及文件的类型等重要信息。在i节点表中最重要的内容是磁盘地址表。在磁盘地址表中有13个块号,文件将以块号在磁盘地址表中出现的顺序依次读取相应的块。Linux文件系统通过把i节点和文件名进行连接,当需要读取该文件时,文件系统在当前目录表中查找该文件名对应的项,由此得到该文件相........ root@xxx:#crontab prgx;在每日早晨8:00之前开机后即可自动启动crontab。 6.设计一个shell程序,在每月第一天备份并压缩/etc目录的所有内容,存放在/root/bak目录里,且文件名为如下形式yymmdd_etc,yy为年,mm为月,dd为日。Shell程序fileback存放在/usr/bin目录下。 参考答案: (1)编写shell程序fileback: #!/bin/sh DIRNAME=`ls /root | grep bak` if [ -z "$DIRNAME" ] ; then mkdir /root/bak cd /root/bak fi YY=`date +%y` MM=`date +%m` DD=`date +%d` BACKETC=$YY$MM$DD_etc.tar.gz tar zcvf $BACKETC /etc echo "fileback finished!" (2)编写任务定时器: echo "0 0 1 * * /bin/sh /usr/bin/fileback" >; /root/etcbakcron crontab /root/etcbakcron 或使用crontab -e 命令添加定时任务: 0 1 * * * /bin/sh /usr/bin/fileback 7.有一普通用户想在每周日凌晨零点零分定期备份/user/backup到/tmp目录下,该用户应如何做? 参考答案:(1)第一种方法: 用户应使用crontab –e 命令创建crontab文件。格式如下: 0 0 * * sun cp –r /user/backup /tmp (2)第二种方法: 用户先在自己目录下新建文件file,文件内容如下: 0 * * sun cp –r /user/backup /tmp 然后执行 crontab file 使生效。 8.设计一个Shell程序,在/userdata目录下建立50个目录,即user1~user50,并设置每个目录的权限,其中其他用户的权限为:读;文件所有者的权限为:读、写、执行;文件所有者所在组的权限为:读、执行。 参考答案: 建立程序 Pro16如下: #!/bin/sh i=1 while [ i -le 50 ] do if [ -d /userdata ];then mkdir -p /userdata/user$i chmod 754 /userdata/user$i echo "user$i" let "i = i + 1" (或i=$(($i+1)) else mkdir /userdata mkdir -p /userdata/user$i chmod 754 /userdata/user$i echo "user$i" let "i = i + 1" (或i=$(($i+1)) fi done

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值