已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Linux系统编程机试试卷答案一编程题:(共4题100分)1、 利用文件描述符的方式实现将a.txt中的内容拷贝到b.txt中 (运行:./cp a.txt b.txt)#include #include #include #include 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);intfdin, fdout;if(fdin = open(argv1, O_RDONLY) = -1)exit(2);if(fdout = open(argv2, O_WRONLY|O_CREAT, 0777) = -1)exit(2);char buff256;ssize_tnreads;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 #include #include #include #include #include int global = 6;char outstr = parent process begin!n;intmain(void)pid_tpid;intvalue = 88;write(STDOUT_FILENO, outstr, sizeof(outstr) - 1);printf(begin forkingn);if(pid = fork() = -1)printf(fork errorn, strerror(errno);exit(2);if(pid = 0)global+;value +;if(pid 0)sleep(2);printf(process id is %d, global is %d, value is %dn, pid, global, value);exit(0);3.#include #include #include #include void signal_handler(int);intmain(void)pid_tpid;if(signal(SIGCHLD, signal_handler) = SIG_ERR)printf(signal errorn);if(pid=fork() 0) /parentint i = 0;for(;)printf(parent: i is %dn, +i);sleep(1);else/childint i = 0;for(; i 10; i+)printf(child: i is %dn, i);sleep(2);_exit(0);exit(0);void signal_handler(int signo)if(signo = SIGCHLD)printf(child process dead!n);wait(NULL);exit(0);4.#include #include #include #include void*th_fn(void *arg)int i = 1;char *n = (char*)arg;for(i = 1; i = 100; i+)printf(%s, %dn, n, i);intmain(void)pthread_attr_tattr;pthread_attr_init(&attr);pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);pthread_ttid;int err;if(pthread_create(&tid, &attr, th_fn, detached) != 0)printf(pthread create errorn);if(err=pthread_join(tid, NULL) != 0)printf(join errorn, strerror(err);return 0;5.服务器端:#include #include #include #include #include #include #include #defineSOCKADDR structsockaddrvoidout(struct sockaddr_in *adr)char str16;printf(sockaddresst%s:%dn, inet_ntop(AF_INET, (SOCKADDR*)&adr-sin_addr.s_addr, str, 16),ntohs(adr-sin_port);intmain(void)int port = 8888;intfd;struct sockaddr_in server, client;/1 construct socket for IPV4 and TCPif(fd=socket(AF_INET, SOCK_STREAM, 0) = -1)printf(socket error: %sn, 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 errorn);exit(2);/4 notify the kernel accepting connection requestlisten(fd, 0);socklen_tlen = 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 #include #include #include #include #include #include intmain(int argc, char *argv)int fd;struct sockaddr_inserver;/1construct the socket for ipv4 and tcpif(fd=socket(AF_INET, SOCK_STREAM, 0) = -1)printf(socket error:%sn, strerror(errno);exit(2);/2 construct server addressmemset(&server, 0, sizeof(server);server.sin_family = AF_INET;server.sin_port = htons(atoi(argv2);inet_pton(AF_INET, argv1, (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:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 苗圃场租赁合同书合集
- 2024年阿德福韦酯项目资金筹措计划书代可行性研究报告
- 股权纠纷答辩状范本新合集
- 小学评聘人员综合考评办法
- 2024年POE项目投资申请报告代可行性研究报告
- 2023年地热发电成套设备资金需求报告
- 2021年常州大学硕士考研真题857微机原理及接口技术
- 厦门大学海外教育学院《354汉语基础》专业硕士历年考研真题及详解
- 2021年常州大学硕士考研真题850工程力学
- 莘县中小学教师考试题目及答案2023
- 鲁迅读书分享华盖集
- 英文配音大赛主持稿
- ZL50装载机液压系统
- 三查四定表完整版本
- 2021年同等学力人员申请硕士学位临床医学真题及答案
- 生物炭在农业上的应用
- 中小学数学课程的跨学科整合研究
- 教科版科学四年级下册第二单元《电路》单元作业设计
- 优化企业开户服务暗访整改报告
- 班组长管理能力测试+答案
- 大理石保养合同
评论
0/150
提交评论