2022年完整word版,Linux程序设计参考答案 .pdf
《2022年完整word版,Linux程序设计参考答案 .pdf》由会员分享,可在线阅读,更多相关《2022年完整word版,Linux程序设计参考答案 .pdf(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第1页扬州大学试题纸 -参考答案(20122013学年第 一 学期) 广陵学院计科 80901、80902 班(年)级课程 Linux 程序设计 (B )卷参考答案题目一二三四五总分得分阅卷人一、Linux 的 ps 命令可以得到当前运行的进程列表,执行如下命令:rootlocalhost nova# ps -elf F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD 4 S root 1 0 0 80 0 - 4840 poll_s 06:50 ? 00:00:01 /sbin/init 1 S root 2 0 0 80 0
2、 - 0 kthrea 06:50 ? 00:00:00 kthreadd 1 S root 3 2 0 -40 - - 0 migrat 06:50 ? 00:00:14 migration/0 4 S rtkit 3401 1 0 81 1 - 42113 poll_s 06:51 ? 00:00:00 /usr/libexec/rtkit-daemon 0 S root 3404 3252 0 80 0 - 34311 poll_s 06:51 ? 00:00:00 pam: gdm-password 4 S root 4222 2144 0 80 0 - 24534 poll_s 06
3、:57 ? 00:00:14 sshd: rootpts/0 4 S root 4224 4222 0 80 0 - 27107 wait 06:57 pts/0 00:00:02 -bash 输出信息中包含了进程的PID ,要求编写一个Shell 程序getpid.sh,用户输入getpid.sh sshd 后,将输出该进程的PID 。 (本程序大概2 到 5 行)#! /bin/bash $|grep - i sshd | gawk print $2 二、使用 SDL 多媒体函数库,编写一段程序,实现在屏幕上画一个圆及一个矩形(图形大小及颜色自定)。主要查看在作图之前,是否正确进行初始化:
4、调用SDL_Init 函数,及设置绘图视口( view)的大小#include #include 得分得分学院_系_班级_学号_姓名_.装.订.线名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 10 页 - - - - - - - - - 第2页#include #define RADIUS 50 #define LENGTH 100 #define WIDTH 62 int main(int argc, char * argv) SDL_Surface *screen;
5、 if(SDL_Init(SDL_INIT_VIDEO) format, 255,255,0); Draw_Rect(screen, 300, 200, LENGTH, WIDTH, SDL_MapRGB(screen-format, 255,255,0); SDL_UpdateRect(screen, 0, 0, 0, 0); SDL_Delay(5000); return EXIT_SUCCESS; 三、编写一个程序,要求实现:主进程调用fork 函数创建两个子进程(为简化表述,分别用A 进程、 B 进程表示这两个进程) 。A、B 进程通过有名管道实现通信,其中A 进程向 B 子进程发送字
6、符串“ABC ”后,退出。 B 进程收到该字符串后,在屏幕上打印该字符串,然后退出。主要检查学生是否能正确使用mkfifo 创建有名管道,以及读写管道是否能够正确设置。答案:得分名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 10 页 - - - - - - - - - 第3页#include #include #include #include #include #include #include #define FIFONAME ./NamedFIFO int mai
7、n(void) int fd; pid_t pidA,pidB; char buf8; pidA = fork(); if (pidA 0)/父进程pidB = fork(); if(pidB 0) fprintf(stdout,progress B create error!n); exit(0); else if(pidB = 0)/子进程 B 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 10 页 - - - - - - - - - 第4页if(access(FI
8、FONAME,F_OK) = -1) mkfifo(FIFONAME, 0666); fd = open(FIFONAME,O_RDONLY); if(read(fd,buf,3) = -1) perror(prosess B read faild!n); printf(recevice from A: %sn, buf); close(fd); exit(0); waitpid(pidA,NULL,0); waitpid(pidB,NULL,0); exit(0); 四、 POSIX 定义的 socket(套接字)可以实现两台计算机间通信。编写一段程序,实现采用套接字在两机间通信。本处只要求
9、写出服务器端程序。主要考查学生有关socket 通信函数调用次序,服务器端要求的调用次序为:socket、bind、listen、accept、recv、send、close 。答案:#include #include #include #include #include #include #include #include 得分名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 10 页 - - - - - - - - - 第5页#include #define PORT
10、65510 #define LISTEN_NUMBER 10 int flag = 0; void *client_func(void *p) printf(come in thread!n); int socket_client_fd = *(int *)p); char buf100; while(1) recv(socket_client_fd,buf,sizeof(buf),0); fputs(buf,stdout); if(strncmp(buf,quit,4)=0) printf(exit!n); break; flag =1; pthread_exit(NULL); /* 客户端
11、部分代码不需要*/ int main() int socket_fd; if(socket_fd = socket(PF_INET,SOCK_STREAM,0) = -1) perror(socket failed!n); exit(0); printf(socket ok!n); struct sockaddr_in server_sockaddr; server_sockaddr.sin_family = AF_INET; server_sockaddr.sin_port = htons(PORT); server_sockaddr.sin_addr.s_addr = INADDR_ANY
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年完整word版 Linux程序设计参考答案 2022 完整 word Linux 程序设计 参考答案
限制150内