(习题解答)第6章-文件处理与进程控制

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第6章文件处理与进程控制1、编写一个可以对文件进行打开、读写操作的程序。解答:#includestdio.h#includefcntl.h#includestring.h//strlen()函数需要用到该头文件intmain(void){intfd;fd=open(/tmp/a.txt,O_CREAT|O_TRUNC|O_RDWR,0666);char*buf1=“Hello,Welcometoyou!”;intlen=strlen(buf1);intsize=write(fd,buf1,len);//保存文件close(fd);char*buf2[50];intsize;fd=open(“/tmp/a.txt”,O_CREAT|O_RDWR,0600);printf(“openfile:a.txtfd=%d\n”,fd);lseek(fd,0,SEEK_SET);size=read(fd,buf2,22);//读取文件内容printf(“size=%d\nreadfromfile:\n%s,\n”,size,buf2);close(fd);return0;}2、什么是进程?怎样区别子进程和父进程?解答:进程是一个具有独立功能的程序的一次动态执行过程。简言之,进程就正在执行的程序。在子进程中返回0值,而在父进程中返回子进程的进程号PID。3、什么是进程描述符?怎样获得进程描述符?解答:进程描述符是一个非零的正整数。通过调用函数getpid()可以获得当前进程的PID。4、叙述嵌入式Linux进程管理机制的工作原理。解答:嵌入式Linux进程管理机制包括启动进程和调度进程。5、编写程序,创建两个子进程,由主进程建立共享内存,一个子进程写数据到共享内存中,再由另一个子进程读出数据。解答:#includestdio.h#includestdlib.h#includesys/shm.hintmain(){intshm_id,i,fd,nwrite,nread;char*shmadd;charbuf[5];/*创建共享内存区域*/shm_id=shmget(IPC_PRIVATE,4096,0666);/*映射共享内存*/shmadd=shmat(shmid,0,0);shmadd=Helloworld!;/*写入共享内存区域*/fd=open(share,O_CREAT|O_RDWR,0666);nwrite=write(fd,shmadd,12);printf(writesuccess!\n);/*从共享内存中读取数据*/lseek(fe,0,SEEK_SET);nread=read(fd,buf,12);printf(read%dchar:%s\n,nread,buf);/*删除共享内存*/shmdt(shmadd);shmctl(shm_id,IPC_RMID,NULL);printf(deletedsharedMemnory!\n);}6、RS232C接口的帧(字符)由哪几部分组成。解答:其传输格式如教材图6.4所示,每一个字符的前面都有一位起始位(低电平,逻辑值“0”),字符本身有5~8位数据位,接着字符后面是一位校验码(也可以没有校验码),最后是停止位。停止位后面是不定长度的空闲位。停止位和空闲位都规定为高电平(逻辑值“1”),这样就能保证起始位开始处一定有一个下跳沿,便于接收方识别。7、使用select函数实现3个串口的通信:串口1接收数据,串口2和串口3向串口1发送数据。请编写相应的应用程序。解答:参见教材第152页例6-15.

1 / 3
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功