云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 嵌入式系统基础2013复习题(1)-

嵌入式系统基础2013复习题(1)-

  • 62 次阅读
  • 3 次下载
  • 2026/1/11 16:41:13

#include #include #define BUFSZ PIPE_BUF voiderr_quit(char *msg); int main(intargc, char *argv[]) {

intfd[2]; intfdin; charbuf[BUFSZ]; intpid, len; if((pipe(fd)) < 0) err_quit(\if((pid = fork()) < 0) err_quit(\if (pid == 0) { close(fd[1]);

while((len = read(fd[0], buf, BUFSZ)) > 0)

{

write(STDOUT_FILENO,\

write(STDOUT_FILENO, buf, len);

}

close(fd[0]);

exit(0);

} else { close(fd[0]);

if((fdin = open(argv[1], O_RDONLY)) < 0) { perror(\

write(fd[1], \

} else {

while((len = read(fdin, buf, BUFSZ)) > 0) write(fd[1], buf, len); close(fdin); close(fd[1]); }

waitpid(pid, NULL, 0); exit(EXIT_SUCCESS); }

voiderr_quit(char *msg) {

perror(msg); exit(EXIT_FAILURE); }

2、用linux文件操作函数编写程序,显示出文件读5个字节前后文件指针位置。

#include #include #include #include #include int main(void) {

int handle;

charmsg[] = \charch; /*创建一个文件*/

handle = open(\/*往文件写数据*/

write(handle,msg,strlen(msg)); /*定位文件开头*/

lseek(handle,0L,SEEK_SET); /*逐个读取直到结束*/

do {

read(handle,&ch,1); printf(\

printf(\}

while(!eof(handle)); close(handle); return 0; }

3、利用dup和dup2函数,将普通文件改成标准输出,再将标准输出还原,并通过文件内容和屏幕打印说明。 4、利用fcntl函数,更改已打开的特征属性。(O_RDONLY,O_WRONLY等); #include int

main(intargc, char *argv[]) {

int val;

if (argc != 2)

err_quit(\if ((val = fcntl(atoi(argv[1]), F_GETFL, 0)) < 0)

err_sys(\switch (val& O_ACCMODE) {

case O_RDONLY: printf(\break;

case O_WRONLY: printf(\break; case O_RDWR:

printf(\break; default:

err_dump(\}

if (val& O_APPEND)

printf(\if (val& O_NONBLOCK)

printf(\#if defined(O_SYNC)

if (val& O_SYNC)

printf(\

#endif

#if !defined(_POSIX_C_SOURCE) && defined(O_FSYNC) if (val& O_FSYNC)

printf(\#endif

putchar('\\n'); exit(0); }

5、编写程序用共享内存实现进程间通讯。 #include #include #include #include #include #include

int main(intargc, char *argv[]) {

intshmid; char *shmbuf; if(argc< 2) {

puts(\exit(EXIT_FAILURE); }

shmid = atoi(argv[1]);

if((shmbuf = shmat(shmid, 0, 0)) < (char *)0) { perror(\exit(EXIT_FAILURE);

}

strcpy(shmbuf,argv[2]); exit(0); } (2)

#include #include #include #include #include #include

int main(intargc, char *argv[]) {

intshmid; char *shmbuf; if(argc< 2) {

puts(\exit(EXIT_FAILURE); }

shmid = atoi(argv[1]);

if((shmbuf = shmat(shmid, 0, 0)) < (char *)0) { perror(\exit(EXIT_FAILURE); }

printf(\exit(0); }

搜索更多关于: 嵌入式系统基础2013复习题(1)- 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

#include #include #define BUFSZ PIPE_BUF voiderr_quit(char *msg); int main(intargc, char *argv[]) { intfd[2]; intfdin; charbuf[BUFSZ]; intpid, len; if((pipe(fd)) < 0) err_quit(\if((pid = fork()) < 0) err_quit(\if (pid == 0) { close(fd[1]); while((len = read(fd[0], buf, BUFSZ)) > 0) { write(STDOUT_FILENO,\write(STDOUT_FILENO, buf, len);

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com