linux系统编程考试(答案)

合集下载

linux试题及答案(全)

linux试题及答案(全)
怎么去提高与学习linux学习,不可否认练习是一个比较好,也比较有效果的一个方法,但有很多人在练习操作时,很多题都会带来困扰,下面我就把一些简单的操作实例分享给大家,大家一起来学习linux:
Linux课后习题,linux练习题,linux进步练习题,linux操作练习题
一、命令部分
1.新建一个用户yangang,密码设为123456,并将其加到root组。写出所用命令。
(2)0 8-18 * * * cut -f 1 >> /backup/bak01.txt
2. 某学校内部既存在WINDOWS操作系统,又存在LINUX操作系统,为了方便资源共享,建立一台SAMBA服务器,其地址为192.168.0.5,建立std、teacher两个用户,同时设置其密码。
创建用户:useradd std
service sshd restart
71.创建一个以自己的名的拼音命名的用户。
useradd chengwen
72.添加一个用户组,名称为js。
groupadd js
73.修改新建的用户属于js组。
usermod –g js newuser
74.进入该用户主目录,显示当前的路径。
cal 12 2011
57.建立文件/etc/group的符号链接文件/root/abc。
ln –s /etc/group /root/abc
58.后台启动程序gedit。
Gedit &
59.配置网卡eth0的IP地址为192.168.0.1,子网掩码为255.255.255.0
ifconfig eth0:192.168.0.1 netmask 255.255.255.0

Linux考试练习题(附答案)

Linux考试练习题(附答案)

Linux考试练习题(附答案)一、选择1、下列()不属于Linux常用的shell:A、bashB、shC、ashD、bach2、在添加用户的时候可以使用()参数来指定用户的默认shell:A、-dB、-sC、-cD、-g3、更改用户密码使用()命令:A、useraddB、passwdC、groupaddD、finger4、使用rpm安装一个软件的正确命令是():A、rpm -eB、rpm -iC、rpm -vD、rpm -U5、观察系统当前进程的运行情况的命令是():A、freeB、dmesgC、topD、last6、下列()环境变量表示当前目录:A、PATHB、HOMEC、PWDD、SHELL7、删除用户的时候可以使用()参数,把用户的主目录也一起删除:A、-dB、-rC、-cD、-g8、添加用户组使用()命令:A、groupaddB、newgrpC、useraddD、userdel9、卸载一个rpm包的命令是():A、rpm -eB、rpm -iC、rpm -UD、rpm -v10、下面哪个命令可以显示文本文件的内容( ):A、moreB、lnC、manD、type11、下面哪个目录存放用户密码信息() :A、/bootB、/etcC、/varD、/dev12、下面哪个命令可以分页显示大文本文件( ):B、catC、moreD、type13、默认情况下管理员创建一个用户,就会在()目录下创建一个用户主目录:A、/usrB、/homeC、/rootD、/etc14、为了将当前目录下的归档文件myftp.tgz解压缩到/tmp目录下,我们可以使用:A. tar xvzf myftp.tgz -C /tmpB. tar xvzf myftp.tgz -R /tmpC. tar vzf myftp.tgz -X /tmpD. tar xvzf myftp.tgz /tmp15、为了保证系统的安全,现在的linux系统一般将/etc/passwd 密码文件加密后,保存为____ 文件。

linux 试题及答案

linux 试题及答案

linux 试题及答案第一部分:选择题1. Linux 是一种()操作系统。

a) 开源b) 闭源c) 商业d) 私有答案:a) 开源2. 在 Linux 中,用于显示当前所在路径的命令是()。

a) pwdb) lsc) cdd) cp答案:a) pwd3. 在 Linux 中,用于创建目录的命令是()。

a) mkdirb) touchc) rmd) mv答案:a) mkdir4. Linux 中,用于列出当前目录下的文件和文件夹的命令是()。

a) lsb) cdc) pwdd) rm答案:a) ls5. 在 Linux 中,用于复制文件的命令是()。

a) cpb) mvc) touchd) mkdir答案:a) cp第二部分:填空题1. Linux 操作系统的核心部分被称为()。

答案:内核2. Linux 中,用于修改文件或目录的权限的命令是()。

答案:chmod3. 在 Linux 中,用于压缩文件的命令是()。

答案:tar4. Linux 是基于()开发的操作系统。

答案:UNIX5. Linux 中,默认的超级用户账户是()。

答案:root第三部分:简答题1. 什么是 Linux 操作系统?答:Linux 是一种开源操作系统,它基于 UNIX 操作系统开发而成。

Linux 以其稳定性、可定制性和安全性而闻名,并广泛运用于服务器和嵌入式设备等领域。

2. 如何在 Linux 中创建一个新用户?答:可以使用 `useradd` 命令来创建一个新用户,例如 `useradd -m newuser`。

其中,`-m` 参数表示同时创建用户的主目录。

3. 如何修改文件的访问权限?答:可以使用 `chmod` 命令来修改文件的访问权限。

例如,要将文件的所有者权限设置为可读可写可执行,可以使用 `chmod u+rwx filename` 命令。

4. 如何在 Linux 中安装软件包?答:可以使用包管理器,如 `apt` (用于 Debian 系统)或 `yum` (用于 Red Hat 系统),来安装软件包。

linux系统编程试卷(答案)

linux系统编程试卷(答案)

凌阳教育嵌入式培训系统编程部分测试试题注:考试为闭卷,程序题需上机操作运行出结果,考试时间为120分钟一:选择题(本题共4小题,每题3分共12分)1)下列不是Linux系统进程类型的是( D )A 交互进程B 批处理进程C 守护进程D 就绪进程(进程状态)2)以下对信号的理解不正确的是( B )A 信号是一种异步通信方式B 信号只用在用户空间进程通信,不能和内核空间交互C 信号是可以被屏蔽的D 信号是通过软中断实现的3)进程有三种状态( C )A 准备态、执行态和退出态B 精确态、模糊态和随机态C 运行态、就绪态和等待态D 手工态、自动态和自由态4)不是进程和程序的区别( B)A 程序是一组有序的静态指令,进程是一次程序的执行过程B 程序只能在前台运行,而进程可以在前台或后台运行C 程序可以长期保存,进程是暂时的D 程序没有状态,而进程是有状态的二:填空题(本题共6小题,2)、3)两题每空四分,其余每空一分。

共23分)1) 列举八种常见的进程间通信方式无名管道、有名管道、消息队列、信号量、共享内存、信号、套接字网络上两个主机的进程间通信方式为套接字2) 命名管道比无名管道的优势提供了一个可以访问的路径名,实现没亲缘关系的进程间通信3) 消息队列比命名管道和无名管道的优势可以按类型实现消息的随机查询,没必要先进先出4) 按照逻辑结构不同进行数据库划分,Sqlite 数据库属于哪一类关系型数据库5) 在C语言中操作sqlite数据库,常用的2中方式是sqlite_exec(回调)、sqlite_gettable(非回调)6) 列举四种进程调度算法先来先调度(FCFS)、短进程优先调度(SPF)、高优先级调度(HPF)、时间片轮转调度三:问答题(本题共7题,每题5分,共35分)1) 什么是系统调用?系统调用是通过什么方式陷入内核态的?请写出你对系统调用的理解。

什么是文件I/O和标准I/O库?文件I/O和标准I/O库的区别?系统调用是指操作系统提供给用户程序调用的一组特殊接口,用户程序可以通过这组接口获得操作系统内核提供的服务。

linux考试试题及答案

linux考试试题及答案

Linux考试试题及答案一、选择题1、在/etc/fstab 文件中指定的文件系统加载参数中,那个参数一般用于CD-ROM 等移动设备(D )A. defaultsB. swC. rw 和 roD. noauto2、Linux 文件权限一共 10 位长度,分成四段,第三段表示的内容是(C)A. 文件类型B. 文件所有者的权限C. 文件所有者所在组的权限D. 其他用户的权限3、在使用 mkdir 命令创建新的目录时,在其父目录不存在时先创建父目录的选项是(D)A. -mB. -dC. -fD. -p4、一台主机要实现通过局域网与另一个局域网通信,需要做的工作是(C)A. 配置域名服务器B. 定义一条本机指向所在网络的路由C. 定义一条本机指向所在网络网关的路由D. 定义一条本机指向目标网络网关的路由5.下列提法中,不属于 ifconfig 命令作用范围的是(D)A. 配置本地回环地址B. 配置网卡的 IP 地址C. 激活网络适配器D. 加载网卡到内核中6、下列关于链接描述,错误的是(B)A. 硬链接就是让链接文件的 i 节点号指向被链接文件的 i 节点B. 硬链接和符号连接都是产生一个新的 i 节点C. 链接分为硬链接和符号链接D. 硬连接不能链接目录文件7、下列文件中,包含了主机DNS 配置信息的文件是(C )A. /etc/host.confB. /etc/hostsC. /etc/resolv.confD. /etc/networks8、那个命令可以从文本文件的每一行中截取指定内容的数据(D)A.cpB.ddC.fmtD.cut9、Linux 有三个查看文件的命令,若希望在查看文件内容过程中可以用光标上下移动来查看文件内容,应使用(C)命令。

A.catB.moreC.lessD.menu10、对名为 fido 的文件用 chmod 551 fido 进行了修改,则它的许可权是(D)A.-rwxr-xr-xB.-rwxr--r--C.-r--r--r--D.-r-xr-x—x11、文件 exer1 的访问权限为 rw-r--r--,现要增加所有用户的执行权限和同组用户的写权限,下列命令正确的是(A)A.chmod a+x g+w exer1B.chmod 765 exer1C.chmod o+x exer1D.chmod g+w exer112、有关归档和压缩命令,下面描述正确的是(C)A.用 uncompress 命令解压缩由 compress 命令生成的后缀为.zip 的压缩文件B.unzip 命令和 gzip 命令可以解压缩相同类型的文件C.tar 归档且压缩的文件可以由 gzip 命令解压缩D.tar 命令归档后的文件也是一种压缩文件13、下列那一项不是进程和程序的区别(B)A.程序是一组有序的静态指令,进程是一次程序的执行过程B.程序只能在前台运行,而进程可以在前台或后台运行C.程序可以长期保存,进程是暂时的D.程序没有状态,而进程是有状态的14、下列关于/etc/fstab 文件描述,正确的是(D)A.fstab 文件只能描述属于 linux 的文件系统B.CD_ROM 和软盘必须是自动加载的C.fstab 文件中描述的文件系统不能被卸载D.启动时按 fstab 文件描述内容加载文件系统15、如果想配置一台匿名 ftp 服务器,应修改那个文件(C)A./etc/gatewayB./etc/ftpserversC./etc/ftpusersD./etc/inetd.conf16、关于进程调度命令,那一项是不正确的(B)A.当日晚 11 点执行 clear 命令,使用 at 命令:at 23:00 today clearB.每年 1 月 1 日早上 6 点执行 date 命令,使用 at 命令:at 6am Jan 1 dateC.每日晚 11 点执行 date 命令,crontab 文件中应为:0 23 * dateD.每小时执行一次 clear 命令,crontab 文件中应为:0 */1 * clear17、可以完成主机名与 IP 地址的正向解析和反向解析任务的命令是(A)A.nslookupB.arpC.ifconfigD.dnslook18、将光盘/dev/hdc 卸载的命令是(C)A.umount/dev/hdcB.unmount/dev/hdcC.umount/mnt/cdrom /dev/hdcD.unmount/mnt/cdrom /dev/hdc19、用 ftp进行文件传输时,有两种模式(C)E.Word 和 binaryF.txt 和 Word DocumentG.ASCII 和 binaryH.ASCII 和 Rich Text Format20、crontab 文件由六个域组成,每个域之间用空格分割,其排列如下(B)I.MIN HOUR DAY MONTH YEAR COMMANDJ.MIN HOUR DAY MONTH DAYOFWEEK COMMANDMAND HOUR DAY MONTH DAYOFWEEKMAND YEAR MONTH DAY HOUR MIN二、填空题1. 在Linux系统中,以文件方式访问设备。

linux操作系统考试试卷(含答案)A

linux操作系统考试试卷(含答案)A

试卷编号01 拟题教研室(或教师)签名教研室主任签名长沙理工大学考试试卷………………………………………………………………………………………………………………课程名称(含档次)linux操作系统课程代号专业层次(本、专)考试方式(开、闭卷)开一、单项选择题(每题2分,共40分)1.Linux系统是一个()的操作系统A.单用户、单任务B.单用户、多任务C.多用户、单任务D.多用户、多任务2.要给文件file1加上其他人可执行属性的命令是()A.chmod a+xB.chown a+xC.chmod o+xD.chown o+x3.配置主机网卡IP地址的配置文件是()A./etc/sysconfig/network-scripts/ifcfg-eth0B./etc/sysconfig/networkC./etc/resolv.confD./etc/host.conf4.Linux系统能够直接读取的分区类型是()A.NTFSB.FAT16C.FAT32D.ext35.下列命令能启动DNS服务的是()A.service named startB./etc/init.d/named startC.service dns startD./etc/init.d/dns restart6. /dev/sdc6分区表示( )A. 第2块IDE硬盘的第6个分区,是逻辑分区B.第3块IDE硬盘的第6个分区,是逻辑分区C. 第3块SCSI硬盘的第6个分区,是逻辑分区D.第3块SCSI硬盘的第2个分区,是逻辑分区7. Linux 下用一条命令创建/A/S/D目录结构的命令是: ( )A. mkdir /A/S/DB. mkdir –p A/S/DC. mkdir –p /A/S/DD. mkdir –r A/S/D8.为了将当前目录下的压缩归档文件myftp.tar.gz解压缩,我们可以使用:( )。

A. tar -xvzf myftp.tar.gzB. tar -xvz myftp.tar.gzC. tar -vzf myftp.tar.gzD. tar -xvf myftp.tar.gz9.比较重要的系统配置资料,一般来说大部分位于( )目录下。

Linu期末考试试题8套(含答案)

Linu期末考试试题8套(含答案)

Linux 期末考试试题(一)一、选择题( 每小题2 分,共50 分)1.在创建Linux 分区时,一定要创建( D )两个分区A. FAT/NTFSB. FAT/SWAPC. NTFS/SWAPD.SWAP/根分区2.在Red Hat Linux 9中,系统默认的(A)用户对整个系统拥有完全的控制权。

A. rootB. guestC. administratorD.supervistor.3.当登录Linux 时,一个具有唯一进程ID 号的shell 将被调用,这个ID 是什么( B )A. NIDB. PIDC. UIDD. CID4.下面哪个命令是用来定义shell 的全局变量( D )A. exportfsB. aliasC. exportsD. export5.哪个目录存放用户密码信息( B )A. /bootB. /etcC. /varD. /dev6.默认情况下管理员创建了一个用户,就会在( B )目录下创建一个用户主目录。

A. /usrB. /homeC. /rootD. /etc7.. 当使用mount 进行设备或者文件系统挂载的时候,需要用到的设备名称位于( D )目录。

A. /homeB. /binC. /etcD. /dev8.如果要列出一个目录下的所有文件需要使用命令行( C )。

A. ls TB. lsC. ls 旬所有)D. ls -d9.哪个命令可以将普通用户转换成超级用户(D )A. superB. passwdC. tarD. su10.除非特别指定,cp 假定要拷贝的文件在下面哪个目录下( D )A. 用户目录B. home 目录C. root 目录D. 当前目录11.在vi编辑器里,命令"dd"用来删除当前的(A )A. 行B. 变量C. 字D. 字符12.当运行在多用户模式下时,用Ctrl+ALT+F* 可以切换多少虚拟用户终端( B )A. 3B. 6C. 1D. 1213.Linux 启动的第一个进程init 启动的第一个脚本程序是( B )。

Linux测试题(内附答案)

Linux测试题(内附答案)

期末测试卷1一、选择题(每题2分,共50分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。

1.Linux系统是一个()的操作系统。

A.单用户、单任务B.单用户、多任务C.多用户、单任务D.多用户、多任务2.Red Hat Linux 9系统中用户默认的Shell是()。

A.bashB.kshC.cshD.sh3.如果忘记了ls命令的用法,可以采用()命令获得帮助。

A.?lsB.help lsC.man lsD.get ls4.要给文件file1加上其他人可执行属性的命令是()。

A.chmod a+x file1B.chown a+x file1C.chmod o+x file1D.chown o+x file15.使用$cd ~命令后,会进入( ) 目录。

A. /B. ~C.用户的主目录D. /tmp6.添加用户“user”的命令是()。

er usereradd userC.add userD.adduser7.删除用户“user”及其主目录下所有文件的命令是()。

erdel -p usererdel -r usererdel -a usererdel -z user8.查看系统当中所有进程的命令是()。

A.ps allB.ps aixC.ps aufD.ps aux9.配置主机网卡IP地址的配置文件是()。

A./etc/sysconfig/network-scripts/ifcfg-eth0B./etc/sysconfig/networkC./etc/resolv.confD./etc/host.conf10.指定系统主机名的配置文件是()。

A./etc/hostsB./etc/host.confC./etc/sysocnfig/networkD./etc/resolv.conf11.以下命令可以重新启动计算机的是()。

A.rebootB.haltC.shutdownD.init 612.Linux系统默认使用的文件系统类型是()。

Linux系统及编程基础有答案

Linux系统及编程基础有答案

一.单项选择题(1*20)二.填空题(1*20)三.简答题(4*10)四.程序设计(2*10)一、填空题1.Linux操作系统是Unix操作系统的一个克隆版本。

2.Linux的命令运行环境是_shell_____,它是一个命令解释器,在用户和操作系统之间提供了一个交互的接口。

3.Linux系统中有四种基本的文件类型,它们是普通文件、目录文件、设备文件、链接文件。

4.Linux系统通过_ 目录_将系统中的所有文件分级、分层组织在一起,形成了Linux文件系统的树形层次结构。

5.在Linux系统中建立新目录的命令是mkdir__。

7.Linux编程可分为__shell____编程和__高级语言__编程。

8.Linux系统提供了许多文本编辑程序,比较常用的有_vi__和_emacs_。

9.要使用make,必须编写一个叫_ makefile _的文件。

10._autoconf__是一个用于生成可以自动配置软件源代码包,以适应多种类Unix 系统的shell脚本的工具。

11._automake__是一个从文件Makefile.am中自动生成Makefile.in文件的工具。

12.Linux系统的文件是一个简单的_字节序列_____。

13.对于Linux而言,所有对设备和文件的操作都使用_文件描述符___来进行。

14.调用_open()_函数可以打开或创建一个文件。

15.执行文件的存取权限分为属主_、_同组用户__和_其他用户三类,每类分为_读_____、__写____和_执行__权限。

16.每一个进程都有一个目录与之连接,它称为__当前工作目录____。

17.当打开一个流时,标准输入输出函数返回一个_FILE结构指针_____。

18.有三个流是在执行程序时自动打开的,它们是_标准输入_____、__标准输出____和_标准误输出____。

19.有3种类型的无格式I/O函数可用来读写流,__字符I/O函数____、_行I/O 函数_____和_块I/O函数_____。

Linux考试试题100道(附答案)

Linux考试试题100道(附答案)

Linux考试试题100道(附答案)1、Linux系统中,用户文件描述符0 表示______。

A.标准输入设备文件描述符B.标准输出设备文件描述符B.管道文件描述符 D.标准错误输出设备文件描述符答案:A2、以长格式列目录时,若文件test的权限描述为:drwxrw-r–,则文件test的类型及文件主的权限是______。

A.目录文件、读写执行B.目录文件、读写C.普通文件、读写D.普通文件、读答案:A3、当字符串用单引号(’’)括起来时,SHELL将______。

A.解释引号内的特殊字符B.执行引号中的命令C.不解释引号内的特殊字符D.结束进程答案:C4、/etc/shadow文件中存放______。

A.用户账号基本信息B.用户口令的加密信息C.用户组信息D.文件系统信息答案:B5、若当前目录为/home,命令ls–l 将显示home 目录下的()。

A.所有文件B.所有隐含文件C.所有非隐含文件D.文件的具体信息答案:D6、为卸载一个软件包,应使用_____。

A.rpm -iB.rpm -eC.rpm -qD.rpm -V答案:B7、下面关于文件“/etc/sysconfig/network-scripts/ifcfg-eth0”的描述哪个是正确的?( )。

A.它是一个系统脚本文件B.它是可执行文件C.它存放本机的名字D.它指定本机eth0的IP地址答案:D8、如何快速切换到用户John的主目录下?( )A.cd @JohnB.cd #JohnC.cd &JohnD.cd ~John答案:D9、启动DNS服务的守护进程()A. httpd startB.httpd stopC. named startD. named stop答案:C10、Linux有三个查看文件的命令,若希望在查看文件内容过程中可以用光标上下移动来查看文件内容,应使用命令()A.cat B. more C. less D. menu答案:C11、在LINUX中,要查看文件内容,可使用()命令。

《LINUX系统及其编程》考试试题及答案

《LINUX系统及其编程》考试试题及答案

《Linux系统及其编程》模拟练习参考答案一、单项选择题1.Linux的根分区的文件系统类型是C。

A. FAT16B.FAT32C. ext3D. NTFS 2.安装好Linux操作系统后,系统默认的超级用户(系统管理员)账号是C。

A. administratorB.guestC.rootD. boot 3.Linux文件系统的文件都按其作用分门别类地放在相关的目录中,对于外部设备文件,一般应将其放在C目录中。

A. /binB. /etcC. /devD. /lib 4.Linux有三个查看文件的命令,若希望在查看文件内容过程中,可以用光标上下移动来查看文件内容,应使用C命令。

A. catB.moreC. lessD. menu 5.可以为文件或目录重命名的命令是C。

A. mkdirB. rmdirC. mvD. rm6.已知某用户stud1,其用户目录为/home/stud1。

如果当前目录为/home,进入目录/home/stud1/test的命令是:C。

A. cd testB. cd /stud1/testC. cd stud1/testD.cd home 7.Linux文件权限一共10位长度,分成四段,第三段表示的内容是C。

A.文件类型B.文件所有者的权限C.文件所有者所在组的权限D.其他用户的权限8.将Windows C:盘(hda1)安装在Linux文件系统的/winsys目录下,命令是B。

A. mount –t vfat dev/hda1 /winsysB. mount –t vfat /dev/hda1 /winsysC. mount –t vfat /dev/hda1 winsysD. mount –t vfat dev/hda1 winsys9.一般情况下,系统启动过程自动加载的文件系统信息是存放在文件D中A. /usr/sbin/cfdiskB. /sbin/fdiskC. /etc/mtabD. /etc/fstab 10.系统中有用户user1和user2,同属于users组。

linux试题及答案

linux试题及答案

linux试题及答案Linux是一种开源的类Unix操作系统,它以其稳定性、安全性和灵活性而广受欢迎。

Linux系统广泛应用于服务器、嵌入式系统和个人电脑。

以下是一些常见的Linux考试题目及其答案,供学习者参考。

题目1:Linux操作系统的主要特点是什么?答案:Linux操作系统的主要特点包括开源性、多用户多任务、良好的网络功能、丰富的软件资源、高度的可定制性、良好的安全性和稳定性。

题目2:请解释什么是Linux内核?答案:Linux内核是Linux操作系统的核心部分,负责管理系统资源,如CPU时间、内存、文件系统和外围设备。

它提供了操作系统的基本功能,如进程管理、文件系统管理、网络通信等。

题目3:如何在Linux系统中查看当前登录用户?答案:可以使用`who`命令来查看当前登录的用户。

此外,`w`命令可以显示当前登录的用户以及他们正在运行的进程。

题目4:请说明Linux系统中的文件权限是如何表示的?答案:Linux系统中的文件权限通常以10个字符表示,前三个字符表示所有者权限,中间三个表示所属组权限,最后四个表示其他用户权限。

权限字符包括:r(读)、w(写)、x(执行)和-(无权限)。

例如,`-rw-r--r--`表示所有者有读写权限,所属组和其他用户只有读权限。

题目5:如何使用命令行在Linux系统中创建一个新文件?答案:可以使用`touch`命令来创建一个新文件,例如`touchfilename`。

如果文件已存在,则`touch`命令会更新文件的访问和修改时间。

题目6:请解释Linux系统中的软链接和硬链接的区别。

答案:硬链接是指向文件inode的另一个目录项,它和原文件是同一个文件系统上的文件,删除原文件会导致硬链接失效。

软链接(符号链接)则类似于Windows中的快捷方式,它是一个指向原文件路径的文件,可以跨文件系统。

题目7:如何在Linux中查看系统运行的进程?答案:可以使用`ps`命令查看当前运行的进程,例如`ps aux`会显示所有用户的进程信息。

Linux操作系统考试题库及答案

Linux操作系统考试题库及答案

Linux操作系统考试题库及答案一、单项选择题1. Linux操作系统的创始人是()。

A. Bill GatesB. Linus TorvaldsC. Steve JobsD. Richard Stallman答案:B2. 在Linux系统中,查看当前路径的命令是()。

A. pwdB. lsC. cdD. mkdir答案:A3. 在Linux系统中,以下哪个命令用于查看文件内容?()A. catB. grepC. findD. touch答案:A4. 在Linux系统中,以下哪个命令用于创建目录?()A. touchB. mkdirC. rmdirD. rm答案:B5. 在Linux系统中,以下哪个命令用于删除文件?()A. mkdirB. rmdirC. rmD. touch答案:C6. 在Linux系统中,以下哪个命令用于查找文件?()A. grepB. findC. catD. ls答案:B7. 在Linux系统中,以下哪个命令用于查看当前登录用户?()A. whoB. userC. usersD. whoami答案:A8. 在Linux系统中,以下哪个命令用于查看系统运行时间和平均负载?()A. uptimeB. topC. psD. free答案:A9. 在Linux系统中,以下哪个命令用于查看磁盘空间使用情况?()A. dfB. duC. lsD. pwd答案:A10. 在Linux系统中,以下哪个命令用于查看网络配置?()A. ifconfigB. netstatC. routeD. all of the above答案:D二、多项选择题1. 在Linux系统中,以下哪些命令用于文本编辑?()A. viB. nanoC. emacsD. gedit答案:ABC2. 在Linux系统中,以下哪些命令用于文件权限管理?()A. chmodB. chownC. chgrpD. ls答案:ABC3. 在Linux系统中,以下哪些命令用于进程管理?()A. psB. topC. killD. free答案:ABC4. 在Linux系统中,以下哪些命令用于网络管理?()A. ifconfigB. netstatC. pingD. route答案:ABCD5. 在Linux系统中,以下哪些命令用于磁盘管理?()A. dfB. duC. fdiskD. mount答案:ABCD三、判断题1. Linux是一个开源的操作系统。

LINUX系统编程含答案

LINUX系统编程含答案

第1 页共7 页一、不定项选择题(多选不得分,每题2分,共20分)1、 B B 目录存放着目录存放着Linux 的源代码。

A 、/etc /etcB B 、/usr/srcC C、、/usrD /usr D、、/home2、Linux 系统是一个系统是一个__D__ __D__ __D__ 的操作系统。

的操作系统。

A 、单用户、单任务B 、单用户、多任务C 、多用户、单任务D 、多用户、多任务3、为了能够使用ls 程序列出目录的内容,并能够使用cd 进入该目录,操作者需要有作者需要有 AC AC AC 的权限。

的权限。

A 、读B B、写、写C 、执行D D、递归、递归4、终止前台起动的进程,可以键入:、终止前台起动的进程,可以键入:_B______B______B_____。

A 、Ctrl+Z Ctrl+Z B B 、Ctrl+C C C、、Ctrl+D D Ctrl+D D、、Ctrl+V5、比较重要的系统配置资料,一般来说大部分位于、比较重要的系统配置资料,一般来说大部分位于__B____B____B__目录下,如果是目录下,如果是进行升级安装,最好先备份。

A 、/boot /bootB B 、/etcC C、、/homeD /home D、、/usr 6、root 文件系统一旦安装完毕,内核将启动名为文件系统一旦安装完毕,内核将启动名为____C_______C_______C___的程序,这也的程序,这也是引导过程完成后,内核运行的第一个程序。

A 、loginB B、、rc.d rc.dC C 、initD D、、startup7、我们可以修改默认的启动级别为_B____B___,使得系统重启后自动采用,使得系统重启后自动采用X Window 方式登录。

A 、3 3B B 、5C C、、2D 2 D、、18、使用chmod 命令修改文件权限时,可以使用的有关用户的选项参数有:ABCD ABCD 。

Linux考试题含答案

Linux考试题含答案

一.填空题:1. 在Linux系统中,以(文件)方式访问设备。

2. Linux内核引导时,从文件(/etc/fstab)中读取要加载的文件系统3. 链接分为:(硬链接)和(符号链接)。

4. 某文件的权限为:d-rw-_r--_r--,用数值形式表示该权限,则该八进制数为:(644),该文件属性是目录。

5. 前台起动的进程使用(ctrl+c)终止。

6. 安装Linux系统对硬盘分区时,每个磁盘最多可以有(4)个分区。

7. 编写的Shell程序直接使用前必须赋予该脚本文件(执行)权限。

8. 系统(交换)分区是作为系统虚拟存储器的一块区域。

9. 在安装Linux系统中,使用(netconfig)程序对网卡的网络进行配置。

10. 唯一标识每一个用户的是(ID和用户名)。

11. DHCP可以实现(动态IP地址分配)。

12.(ping)命令可以测试网络中本机系统是否能到达一台远程主机,所以常常用于测试网络的连通性。

13. vi编辑器具有三种工作模式:(命令行)模式和(插入)模式以及(默行)模式。

14. 可以用ls –al命令来观察文件的权限,每个文件的权限都用10位表示,并分为四段,其中第一段占 1 位,表示(文件类型),第二段占3位,表示(文件所有者)的权限。

15. DNS实际上是分布在internet上的主机信息的数据库,其作用是实现(IP地址)和(主机名)之间的转换。

16. (Apache)是实现WWW服务器功能的应用程序,即通常所说的“浏览web服务器”,在服务器端为用户提供浏览web服务的就是apache应用程序。

17. CD-ROM标准的文件系统类型是(iso9660)。

18. Linux使用支持Windows9.x/2000长文件名的文件系统的类型是(vfat)。

19.在Linux系统中,用来存放系统所需要的配置文件和子目录的目录是(/etc)。

20. Linux中(硬链接)只能建立对文件链接。

Linux考试必考试题及答案整理1

Linux考试必考试题及答案整理1

Linux考试必考试题及答案整理Li nux 考试试题及答案整理一.填空题:1 . 在 Li nux 系统中,以文件方式访问设备。

2. Li nux 内核引导时,从文件 /etc/fstab 中读取要加载的文件系统。

3. Li nux 文件系统中每个文件用 i 节点来标识。

4. 全部磁盘块由四个部分组成,分别为引导块、专用块、i 节点表块和数据存储块。

5. 链接分为:硬链接和符号链接。

6. 超级块包含了 i 节点表和空闲块表等重要的文件系统信息。

7. 某文件的权限为:d-rw-_r--_r--,用数值形式表示该权限,则该八进制数为: 644 ,该文件属性是目录。

8. 前台起动的进程使用 Ctrl +c 终止。

9. 静态路由设定后,若网络拓扑结构发生变化,需由系统管理员修改路由的设置。

1 0. 网络管理的重要任务是:控制和监控。

1 1 . 安装 Li nux 系统对硬盘分区时,必须有两种分区类1/ 3型:文件系统分区和交换分区。

1 3. 编写的 Shel l 程序运行前必须赋予该脚本文件执行权限。

1 4. 系统管理的任务之一是能够在分布式环境中实现对程序和数据的安全保护、备份、恢复和更新。

1 5. 系统交换分区是作为系统虚拟存储器的一块区域。

1 6. 内核分为进程管理系统、内存管理系统、 I /O 管理系统和文件管理系统等四个子系统。

1 7. 内核配置是系统管理员在改变系统配置硬件时要进行的重要操作。

1 8. 在安装 Li nux 系统中,使用 netconfi g 程序对网络进行配置,该安装程序会一步步提示用户输入主机名、域名、域名服务器、 I P 地址、网关地址和子网掩码等必要信息。

1 9. 唯一标识每一个用户的是用户 I D 和用户名。

20 . RI P 协议是最为普遍的一种内部协议,一般称为动态路由信息协议。

21 . 在 Li nux 系统中所有内容都被表示为文件,组织文件的各种方法称为文件系统。

大学linux考试试题及答案

大学linux考试试题及答案

大学linux考试试题及答案一、选择题(每题2分,共20分)1. Linux系统中,以下哪个命令用于查看当前目录下的文件和文件夹?A. lsB. pwdC. cdD. mkdir答案:A2. 在Linux中,以下哪个命令用于查看当前系统的运行时间和平均负载?A. uptimeB. topC. whoD. ps答案:A3. 在Linux系统中,以下哪个文件系统格式是默认的?A. FAT32B. NTFSC. ext4D. HFS+答案:C4. 在Linux中,以下哪个命令用于查看当前登录用户的信息?A. whoB. whoamiC. usersD. w答案:D5. 在Linux系统中,以下哪个命令用于查找文件?A. findB. grepC. locateD. search答案:A6. 在Linux中,以下哪个命令用于查看文件内容?A. catB. lessC. moreD. tail答案:A7. 在Linux系统中,以下哪个命令用于解压tar.gz文件?A. tar -xzvfB. tar -czvfC. gzip -dD. gunzip答案:A8. 在Linux中,以下哪个命令用于创建一个软链接?A. ln -sB. ln -hC. ln -fD. ln -i答案:A9. 在Linux系统中,以下哪个命令用于查看当前路径?A. lsB. pwdC. cdD. path答案:B10. 在Linux中,以下哪个命令用于查看当前系统的磁盘使用情况?A. dfB. duC. diskusageD. diskinfo答案:A二、填空题(每题2分,共20分)1. Linux系统中,使用________命令可以切换到用户的主目录。

答案:cd ~2. 在Linux中,使用________命令可以查看当前路径的绝对路径。

答案:pwd3. 在Linux系统中,使用________命令可以查看当前系统的版本信息。

答案:uname -a4. 在Linux中,使用________命令可以查看当前系统的内核版本。

Linux系统编程答案

Linux系统编程答案

《Linux系统编程》机试试卷答案一.编程题:(共4题100分)1、利用文件描述符的方式实现将a.txt中的内容拷贝到b.txt中(运行:./cp a.txt b.txt)#include <unistd.h>#include <fcntl.h>#include <string.h>#include <stdlib.h>char *res = "copy succeed!\n";char *fail = "illegal parameter!\n";intmain(int argc, char **argv){if(argc != 3){write(STDOUT_FILENO, fail, strlen(fail));exit(2);}int fdin, fdout;if((fdin = open(argv[1], O_RDONLY)) == -1){exit(2);}if((fdout =open(argv[2], O_WRONLY|O_CREAT, 0777)) == -1){exit(2);}char buff[256];ssize_t nreads;while((nreads = read(fdin, buff, 256)) != 0){ if(write(fdout, buff, nreads) != nreads){exit(2);}}close(fdin);close(fdout);write(STDOUT_FILENO, res, strlen(res));return 0;}2.#include <unistd.h>#include <errno.h>#include <string.h>#include <stdio.h>#include <stdlib.h>#include <errno.h>int global = 6;char outstr[] = "parent process begin!\n";intmain(void){pid_t p id;int value = 88;write(STDOUT_FILENO, outstr, sizeof(outstr) - 1);printf("begin forking\n");if((pid = fork()) == -1){printf("fork error\n", strerror(errno));exit(2);}if(pid == 0){global++;value ++;}if(pid > 0)sleep(2);printf("process id is %d, global is %d, value is %d\n", pid, global, value);exit(0);}3.#include <stdlib.h>#include <stdio.h>#include <unistd.h>#include <signal.h>void signal_handler(int);intmain(void){pid_t p id;if(signal(SIGCHLD, signal_handler)== SIG_ERR){printf("signal error\n");}if((pid=fork()) < 0){printf("fork error\n");}else if(pid > 0){ //parentint i = 0;for(;;){printf("parent: i is%d\n", ++i);sleep(1);}}else{ //childint i = 0;for(; i < 10; i++){printf("child: i is%d\n", i);sleep(2);}_exit(0);}exit(0);}voidsignal_handler(int signo){if(signo == SIGCHLD){printf("child process dead!\n");wait(NULL);exit(0);}}4.#include <pthread.h>#include <stdio.h>#include <stdlib.h>#include <string.h>void*th_fn(void *arg){int i = 1;char *n = (char*)arg;for(i = 1; i <= 100; i++){printf("%s, %d\n", n, i);}}intmain(void){pthread_attr_t attr;pthread_attr_init(&attr);pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);pthread_t tid;int err;if((pthread_create(&tid, &attr, th_fn, "detached")) != 0){printf("pthread create error\n");}if((err=pthread_join(tid, NULL)) != 0){printf("join error\n", strerror(err));}return 0;}5.服务器端:#include <netdb.h>#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <errno.h>#include <string.h>#include <time.h>#define SOCKADDR struct sockaddrvoidout(struct sockaddr_in *adr){char str[16];printf("sockaddress\t%s:%d\n",inet_ntop(AF_INET,(SOCKADDR*)&adr->sin_addr.s_addr, str, 16), ntohs(adr->sin_port));}intmain(void){int port = 8888;int fd;struct sockaddr_in server, client;//1 construct socket for IPV4 and TCPif((fd=socket(AF_INET, SOCK_STREAM, 0)) == -1){ printf("socket error: %s\n", strerror(errno));exit(2);}//2 construct address struct and initializationmemset(&server, 0, sizeof(server));server.sin_family = AF_INET;server.sin_port = htons(port);server.sin_addr.s_addr = INADDR_ANY;//inet_pton(AF_INET, "172.16.1.17", &server.sin_addr.s_addr);//3 bind socket to addressif(bind(fd, (SOCKADDR*)&server,sizeof(server)) == -1){printf("bind error\n");exit(2);}//4 notify the kernel accepting connection requestlisten(fd, 0);socklen_t len = sizeof(client);while(1){// 5 waiting for the client connectionint sockfd = accept(fd, (SOCKADDR*)&client, &len);out(&client);time_t t = time(NULL);char *p = ctime(&t);// 6 send the datawrite(sockfd, p, strlen(p));// 7 close the socketclose(sockfd);}close(fd);}客户端:#include <netdb.h>#include <stdio.h>#include <stdlib.h>#include <errno.h>#include <string.h>#include <memory.h>#include <unistd.h>intmain(int argc, char **argv){int fd;struct sockaddr_in server;//1 construct the socket for ipv4 and tcpif((fd=socket(AF_INET, SOCK_STREAM, 0)) == -1){ printf("socket error:%s\n", strerror(errno));exit(2);}//2 construct server addressmemset(&server, 0, sizeof(server));server.sin_family = AF_INET;server.sin_port = htons(atoi(argv[2]));inet_pton(AF_INET, argv[1],(struct sockaddr *)&server.sin_addr.s_addr);//3 connect to the serverif(connect(fd,(struct sockaddr*)&server, sizeof(server)) == -1){printf("can not connect to server: %s\n",strerror(errno));}//4 read data from networkchar buff[1024];int nreads = read(fd, buff, sizeof(buff));//5 process the datawrite(STDOUT_FILENO, buff, nreads);//6 close the socketclose(fd);}11。

linux笔试题及答案

linux笔试题及答案

linux笔试题及答案一、选择题1. 在Linux系统中,哪个命令可以查看当前目录下的文件和文件夹?A. lsB. pwdC. cdD. mkdir答案:A2. 下列哪个命令可以用来创建一个新的文件夹?A. touchB. mkdirC. rmdirD. rm答案:B3. 在Linux中,如何删除一个名为file.txt的文件?A. rm file.txtB. del file.txtC. erase file.txtD. delete file.txt答案:A4. 要查看一个文本文件的内容,应该使用哪个命令?A. catB. dogC. showD. view答案:A5. 如果需要对Linux系统进行备份,通常使用哪个命令?A. cpB. tarC. dumpD. backup答案:B二、填空题1. 在Linux系统中,使用________命令可以切换到用户的主目录。

答案:cd ~2. 若要查看当前系统的内核版本信息,可以使用________命令。

答案:uname -r3. 为了查找名为image.png的文件,可以使用________命令。

答案:find /path/to/search -name image.png4. 若要查看某个目录下的所有隐藏文件,可以使用________命令。

答案:ls -a5. 为了压缩一个目录及其所有子目录和文件,可以使用________命令。

答案:tar -czvf archive_name.tar.gz /path/to/directory三、简答题1. 请简述Linux中的文件系统结构。

答:Linux文件系统是一种层次式的文件组织结构,由一系列目录和子目录组成。

最顶层是根目录(/),所有其他文件和目录都是根目录的子目录。

常见的主要目录包括:/bin(存放基本的用户二进制文件)、/home(用户的主目录)、/etc(系统配置文件)、/var(经常变化的文件,如日志文件)等。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

linux系统编程考试(答案)————————————————————————————————作者:————————————————————————————————日期:凌阳教育嵌入式培训系统编程部分测试试题注:考试为闭卷,程序题需上机操作运行出结果,考试时间为120分钟一:选择题(本题共4小题,每题3分共12分)1)下列不是Linux系统进程类型的是( D )A 交互进程B 批处理进程C 守护进程D 就绪进程(进程状态)2)以下对信号的理解不正确的是( B )A 信号是一种异步通信方式B 信号只用在用户空间进程通信,不能和内核空间交互C 信号是可以被屏蔽的D 信号是通过软中断实现的3)进程有三种状态( C )A 准备态、执行态和退出态B 精确态、模糊态和随机态C 运行态、就绪态和等待态D 手工态、自动态和自由态4)不是进程和程序的区别( B)A 程序是一组有序的静态指令,进程是一次程序的执行过程B 程序只能在前台运行,而进程可以在前台或后台运行C 程序可以长期保存,进程是暂时的D 程序没有状态,而进程是有状态的二:填空题(本题共6小题,2)、3)两题每空四分,其余每空一分。

共23分)1) 列举八种常见的进程间通信方式无名管道、有名管道、消息队列、信号量、共享内存、信号、套接字网络上两个主机的进程间通信方式为套接字2) 命名管道比无名管道的优势提供了一个可以访问的路径名,实现没亲缘关系的进程间通信3) 消息队列比命名管道和无名管道的优势可以按类型实现消息的随机查询,没必要先进先出4) 按照逻辑结构不同进行数据库划分,Sqlite 数据库属于哪一类关系型数据库5) 在C语言中操作sqlite数据库,常用的2中方式是sqlite_exec(回调)、sqlite_gettable(非回调)6) 列举四种进程调度算法先来先调度(FCFS)、短进程优先调度(SPF)、高优先级调度(HPF)、时间片轮转调度三:问答题(本题共7题,每题5分,共35分)1) 什么是系统调用?系统调用是通过什么方式陷入内核态的?请写出你对系统调用的理解。

什么是文件I/O和标准I/O库?文件I/O和标准I/O库的区别?系统调用是指操作系统提供给用户程序调用的一组特殊接口,用户程序可以通过这组接口获得操作系统内核提供的服务。

系统调用是通过软件中断方式陷入内核的linux的文件I/O是由操作系统提供的基本IO服务, 标准I/O库通过封装系统调用,提供了一个到底层I/O的接口。

标准I/O默认采用了缓冲机制,还创建了一个包含文件和缓冲区相关数据的数据结构;文件I/O一般没有采用缓冲模式,需要自己创建缓冲区。

一种是标准库封装系统调用而成,更高级,一种是系统提供的,比较低级;标准I/O可移植性高、文件I/O可移植性低。

2) 什么是进程?用fork()创建一个子进程时,系统会做什么工作进程是具有独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配的单位,不仅是系统内部独立运行的实体也是独立竞争资源的实体。

用fork()时系统会分配子进程一个ID号然后继承父进程的地址空间,包括进程上下文进程堆栈打开的文件描述符等等,他就是父进程的一个复制品。

3) 进程和线程有什么区别?每个独立的进程有一个程序运行的入口、顺序执行序列和程序的出口。

但是线程不能够独立执行,必须依存在进程程中,由进程提供多个线程执行的控制。

进程是系统进行资源分配和调度的一个独立单位. 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行。

4) 什么是线程的互斥和同步,程序应怎样写才能达到互斥或同步?互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。

但互斥无法限制访问者对资源的访问顺序,即访问是无序的。

同步:是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。

在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的。

少数情况是指可以允许多个访问者同时访问资源。

在写程序时可以用互斥锁和信号量实现线程同步,一个线程访问共享资源时给这个资源上锁其他线程就不能访问了直到上锁的进程释放互斥锁为止。

5) 什么是僵尸进程?孤儿进程?守护进程?僵尸进程:僵尸进程是指它的父进程已经退出(父进程没有等待(调用wait/waitpid)它),而该进程dead之后没有进程接受,就成为僵尸进程,也就是(zombie)进程。

孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。

孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。

守护进程:是指在UNIX或其他多任务操作系统中在后台执行的电脑程序,并不会接受电脑用户的直接操控。

此类程序会被以进程的形式初始化。

守护进程程序的名称通常以字母“d”结尾:例如,syslogd就是指管理系统日志的守护进程。

通常,守护进程没有任何存在的父进程(即PPID=1),且在UNIX系统进程层级中直接位于init之下。

守护进程程序通常通过如下方法使自己成为守护进程:对一个子进程调用fork,然后使其父进程立即终止,使得这个子进程能在init下运行。

这种方法通常被称为“脱壳”6) 有3个线程:A、B、C,现要求A先执行,然后B再执行,最后C再执行,之后A->B->C循环执行,请说出大体的思路?创建3个信号量sem_A、sem_B、sem_C,分别用来给A、B、C 3个线程,启动sem_A信号量的初始值为1,其余2个信号量初始值为0,当主线程创建3个子线程后,因为sem_A 的值大于0,所以只有A线程执行相关的代码,B、C线程堵塞在对sem_B、sem_C信号量的p操作;当A线程执行完相应的代码后,给sem_B信号量加1,之后B线程开始执行相关操作,在此时A线程堵塞在对sem_A信号量的p操作,C线程继续堵塞;当B线程执行完毕相关操作后,给sem_C进行V操作,B线程堵塞,C线程执行相关操作;以上是从A->B->C线程执行的流程.7) exit()、_exit()和return()的区别?exit():结束当前的进程,并且会刷新缓存区,关闭没有关闭的文件等_exit():结束当前的进程,不对缓存区刷新return:1:在main函数中会结束当前进程2:在子函数中,会返回调用当前函数的调用位置,进程从下个C语句开始执行四:程序题(本小题共3题,每题10分共30分)1)用多线程、信号量实现生产者和消费者的模拟,仓库容量为10,仓库中开始有3件产品,消费者每3秒消费一件产品,生产者每两秒生产一个产品,生产者和消费者不能同时进入仓库(需要互斥)//信号量---线程间通信//“生产者消费者”问题#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<semaphore.h>#include<pthread.h>#define msleep(x)usleep(x*1000)#define PRODUCT_SPEED 3 //生产速度#define CONSUM_SPEED 1 //消费速度#define INIT_NUM 3 //仓库原有产品数#define TOTAL_NUM 10 //仓库容量sem_t p_sem, c_sem, sh_sem;int num=INIT_NUM;void product(void) //生产产品{sleep(PRODUCT_SPEED);}int add_to_lib() //添加产品到仓库{num++;//仓库中的产品增加一个msleep(500);return num;}void consum() //消费{sleep(CONSUM_SPEED);}int sub_from_lib() //从仓库中取出产品{num--; //仓库中的产品数量减一msleep(500);return num;}void *productor(void *arg) //生产者线程{while(1){sem_wait(&p_sem);//生产信号量减一product();// 生产延时sem_wait(&sh_sem);//这个信号量是用来互斥的printf("push into! tatol_num=%d\n",add_to_lib());sem_post(&sh_sem);sem_post(&c_sem); //消费信号量加一}}void *consumer(void *arg) //消费者线程{while(1){sem_wait(&c_sem); //消费者信号量减一sem_wait(&sh_sem);printf("pop out! tatol_num=%d\n",sub_from_lib());sem_post(&sh_sem);sem_post(&p_sem);//生产者信号量加一consum();//消费延时}}int main(){pthread_t tid1,tid2;sem_init(&p_sem,0,TOTAL_NUM-INIT_NUM);sem_init(&c_sem,0,INIT_NUM);sem_init(&sh_sem,0,1);pthread_create(&tid1,NULL,productor,NULL);pthread_create(&tid2,NULL,consumer,NULL);pthread_join(tid1,NULL);pthread_join(tid2,NULL);return 0;}2)编写一个多线程的程序:要求:1、创建2个子线程,主进程要传递3个参数给线程1,传递另一个参数给线程2;2、线程1、线程2中对每个传给线程的参数加1,等线程都执行完毕后,进程打印出四个参数的值。

3、传给线程1参数的值必需要能够改变,传给线程2参数的值必需不能改变#include <stdio.h>#include <unistd.h>#include <pthread.h>typedef struct{int A;int B;int C;}DATA;/*传参方法1*/void *thread_1(void *arg){DATA *rec;sleep(1);rec = (DATA *)arg;rec->A += 1;rec->B += 1;rec->C += 1;return NULL;}/*传参方法2*/void *thread_2(void * arg){int rec = 0;sleep(1);rec = (int )(arg);rec ++;return NULL;}int main(int argc, char *argv[]){pthread_t tid1,tid2;DATA test;int D = 100;test.A = 100;test.B = 100;test.C = 100;/*创建两个线程*/pthread_create(&tid1, NULL, (void *)thread_1, (void *)(&test));pthread_create(&tid2, NULL, (void *)thread_2, (void *)D);pthread_join(tid1, NULL);pthread_join(tid2, NULL);printf("A=%d\n", test.A);printf("B=%d\n", test.B);printf("C=%d\n", test.C);printf("D=%d\n", D);return 0;}3) 编制一段程序,实现进程的管道通信:使用系统调用pipe()建立一条管道线,2个子进程分别向管道各写一句话:Child process 1 is sending a message!Child process 2 is sending a message!而父进程则从管道中读出来自于2个子进程的信息,显示在屏幕上。

相关文档
最新文档