1.linux中把分区和目录对应的过程叫做(挂载)
2.信号是在软件层次上对(中断)机制的一种模拟, 是一种异步通信方式。
3.用GCC编译过程可以被细分为四个阶段:(预处理、编译、汇编和链接)
4.编译有线程的文件要加(-pthread)参数。
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.linux文件系统由四部分组成(内核、shell、文件系统和应用程序)用于存放文件的控制信息。
15.一个完整的信号生命周期包含4个重要的事件,这4个重要事件分别是?(信号诞生、信号在进程中注册、信号在进程中注销、信号处理函数执行完毕)
16.互斥锁只有两种状态,即?(上锁( lock )和解锁( unlock ))
17.线程本身调用(pthread_exit)函数可以退出线程。
18.向消息队列发送消息的函数是(msgsnd)
19.(fcntl)系统调用可以根据文件描述符来操作文件特性。
20.Valgrind包括很多工具,(Memcheck)是valgrind应用最广泛的工具,一个重量级的内存检查器,能够发现开发中绝大多数内存错误使用情况,(Cachegrind)是主要用来检查程序中缓存使用出现的问题。
21.信号发送函数中, (alarm)和(setitimer())用于设置定时器,当计时时间到达时,向进程发送SIGALRM信号。
22.在标准IO库中,rewind函数作用?(将文件内部的位置指针重新指向一个流(数据流/文件)的开头)
23.c语言中没有明确给定初值的全局变量和静态变量存放在哪儿?(全局存储区(静态存储区))
24.函数geteuid()用于得到进程的? (用户有效 UID 值)
25.当一个线程的属性设置为(分离状态),该线程结束时立即释放它所占有的系统资源。
26.以下哪种方式属于异常终止一个进程(D接到一个信号并终止)
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);当第一个31.参数pid>0时,表示(发送信号给进程ID为pid的进程)
32.共享主存基本操作(shmat())将共享主存区映射到进程虚拟地址空间
33.lseek(fd,位移数,whence):设置文件偏移量
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)
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)
60.进程初始化数据区:全局初始化数据区/静态数据区
61.进程的堆区:用于动态内存分配。一般由程序员分配和释放,若程序员不释放,程序结束时由 OS 回收。
62. Linux 文件系统中的块有(根据块使用的不同):引导块、超级块、Inode 块、数据块。 控制信息、文件基本属性等是 Inode 节点,为文件系统索引。存放数据的为数据块。超级块中含有文件系统的基本信息,如块大小、指向空间 inode 和数据块的指针等相关信息。
63.进程运行时默认打开的标准对象:标准输入设备 stdin、标准输出设备 stdout、标准错误 输出设备 stderror
64.修改文件权限命令:chmod、chgrp、chown。
65.文件描述符为?整型。对于用户空间来说,任何打开的文件都将分配一个唯一非负整数, 用于标识该打开文件,该值即文件描述符,为一个大于等于 0 的整数。
66.权限的值?读:4 写:2 执行:1 注意:前三位为用户的权限,再三位为所属组的权 限,再三位为其他用户的权限。
67.获取文件属性,是否穿透?stat 函数具有穿透能力,能够穿透链接文件;而 lstat 函数不 具有穿透能力,不穿透链接文件,文件类型还为链接文件。
68. opendir 函数:打开一个目录,返回一个目录流指针。参数为欲打开目录的名称(路径)。
mkdir 函数:第一个参数是欲创建的目录文件路径,第二个参数是创建目录的权限。
69. 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()
81. Linux下获取文件属性函数: stat()