完整word版Linux C刘学勇 编著各章习题答案.docx

上传人:b****5 文档编号:6838992 上传时间:2023-01-11 格式:DOCX 页数:13 大小:16.58KB
下载 相关 举报
完整word版Linux C刘学勇 编著各章习题答案.docx_第1页
第1页 / 共13页
完整word版Linux C刘学勇 编著各章习题答案.docx_第2页
第2页 / 共13页
完整word版Linux C刘学勇 编著各章习题答案.docx_第3页
第3页 / 共13页
完整word版Linux C刘学勇 编著各章习题答案.docx_第4页
第4页 / 共13页
完整word版Linux C刘学勇 编著各章习题答案.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

完整word版Linux C刘学勇 编著各章习题答案.docx

《完整word版Linux C刘学勇 编著各章习题答案.docx》由会员分享,可在线阅读,更多相关《完整word版Linux C刘学勇 编著各章习题答案.docx(13页珍藏版)》请在冰豆网上搜索。

完整word版Linux C刘学勇 编著各章习题答案.docx

完整word版LinuxC刘学勇编著各章习题答案

LinuxC各章习题答案

第1章习题答案

一、填空题

1.Unix

2.Shell

3.普通文件目录文件设备文件

4.目录

5.mkdir

二、选择题

1.A2.A3.B4.C5.C

三、上机题(略)

第2章习题答案

一、填空题

1.Shell编程高级语言编程

2.viemacs

3.Makefile

4.Autoconf

5.Automake

二、选择题

1.A2.B3.A4.A5.C

三、上机题(略)

第3章习题答案

一、填空题

1.字节序列

2.文件描述符

3.Open

4.属主同组用户其他用户读写执行

5.当前工作目录工作目录

二、选择题

1.B2.C3.A4.B5.C

三、上机题

1、

#include

#include

#include

#include

#include

#definePERMS0666

#defineDUMMY0

#defineBUFSIZE1024

intmain(intargc,char*argv[])

{

intsource_fd,target_fd,num;

chariobuffer[BUFSIZE];

if(argc!

=3)

{

printf("Usage:

%sSourcefileTargetfile\n",argv[0]);

return1;

}

if((source_fd=open(*(argv+1),O_RDONLY,DUMMY))==-1)

{

printf("Sourcefileopenerror!

\n");

return2;

}

if((target_fd=open(*(argv+2),O_WRONLY|O_CREAT,PERMS))==-1)

{

printf("Targetfileopenerror!

\n");

return3;

}

while((num=read(source_fd,iobuffer,BUFSIZE))>0)

if(write(target_fd,iobuffer,num)!

=num)

{

printf("Targetfilewriteerror!

\n");

return4;

}

close(source_fd);

close(target_fd);

return0;

}

2、

#include

#include

#include

#include

#include

intmain(intargc,char*argv[])

{

inti,fd;

structstatstatbuf;

structutimbuftimes;

if(argc!

=2)

{

printf("Usage:

%sfilename\n",argv[0]);

return1;

}

if((fd=open(argv[1],O_RDWR))<0)

{

printf("%sopenfailed.\n",argv[1]);

return3;

}

if(stat(argv[1],&statbuf)<0)

return2;

if(ftruncate(fd,statbuf.st_size/2)<0)

{

printf("%struncatefailed.\n",argv[1]);

return4;

}

printf("%sistruncatednow.\n",argv[1]);

return0;

}

3、

#include

#include

#include

#include

#include

#definePERMS0666

#defineDUMMY0

#defineBUFSIZE1024

intmain(intargc,char*argv[])

{

intsource_fd,target_fd,num;

inti;

chariobuffer[BUFSIZE];

if(argc!

=3)

{

printf("Usage:

%sSourcefileTargetfile\n",argv[0]);

return1;

}

if((source_fd=open(*(argv+1),O_RDONLY,DUMMY))==-1)

{

printf("Sourcefileopenerror!

\n");

return2;

}

if((target_fd=open(*(argv+2),O_WRONLY|O_CREAT,PERMS))==-1)

{

printf("Targetfileopenerror!

\n");

return3;

}

while((num=read(source_fd,iobuffer,BUFSIZE))>0)

{

for(i=0;i

{

if(iobuffer[i]>='a'&&iobuffer[i]<='z')

iobuffer[i]-=32;

}

if(write(target_fd,iobuffer,num)!

=num)

{

printf("Targetfilewriteerror!

\n");

return4;

}

}

close(source_fd);

close(target_fd);

return0;

}

4、

#include

#include

#include

#include

intmain(intargc,char*argv[])

{

charpath[1000];

DIR*dp;

structdirent*pdirent;

getwd(path);

if((dp=opendir(path))==NULL)

{

printf("Opendir%sfailed\n",path);

return2;

}

if((pdirent=readdir(dp))==0)

{

printf("readdir%sfailed\n",path);

return3;

}

printf("%s\n",pdirent->d_name);

closedir(dp);

return0;

}

第4章习题答案

一、填空题

1.FILE结构的指针

2.标准输入标准输出标准错误输出

3.字符I/O函数行I/O函数块I/O函数

4.错误指示器文件结束指示器

5.全缓冲行缓冲无缓冲

二、选择题

1.D2.B3.D4.A5.C

三、上机题

1、

#include

main()

{

chara;

while

(1)

{

scanf("%c",&a);

if(a=='q')

return;

printf("%c",a);

}

}

2、

#include

intmain(intargc,char*argv[])

{

charbuf[1024];

FILE*fp;

if(argc!

=2)

{

printf("Usage:

%s\n",argv[0]);

return1;

}

if((fp=fopen(argv[1],"r"))==NULL)

{

printf("Fileopenerror.\n");

return1;

}

while((fgets(buf,1024,fp))!

=0)

puts(buf);

return0;

}

3、

#include

intmain(intargc,char*argv[])

{

charbuf[1024];

inti;

FILE*fp;

if(argc!

=2)

{

printf("Usage:

%s\n",argv[0]);

return1;

}

if((fp=fopen(argv[1],"r"))==NULL)

{

printf("Fileopenerror.\n");

return1;

}

while((fgets(buf,1024,fp))!

=0)

{

for(i=0;buf[i]!

='\0';i++)

{

if(buf[i]>='a'&&buf[i]<='z')

buf[i]-=32;

}

puts(buf);

}

return0;

}

4、

#include

intmain()

{

FILE*fp;

chara;

fp=tmpfile();

if(fp==NULL)

{

printf("tmpfileerror!

\n");

return1;

}

printf("OpenedatemporaryfileOK!

\n");

while((a=getchar())!

='q')

{

fputc(a,fp);

rewind(fp);

fputc(a,stdout);

}

return0;

}

第5章习题答案

一、填空题

1.运行态就绪态等待态

2.task_struct

3.用户模式系统模式

4.Forkvfork子进程父进程

5.进程标识号

二、选择题

1.B2.A3.D4.D5.A

三、上机题

1、

#include

#include

#include

intmain()

{

pid_tpid;

intvari=5;

if((pid=vfork())<0)

{

printf("vforkerror.\n");

return1;

}

elseif(pid==0)

{

printf("Helloworld!

\n");

printf("Childprocessexited!

\n");

_exit(0);

}

printf("Parentprocessexited!

\n");

return0;

}

2、

#include

#include

#include

intmain()

{

pid_tpid;

charcmd[100];

intstatus;

if((pid=fork())<0)

{

printf("vforkerror.\n");

return1;

}

elseif(pid==0)

{

while

(1)

{

printf("Helloworld!

\n");

}

}

sleep

(2);

sprintf(cmd,"kill%d",pid);

if((status=system(cmd))<0)

printf("systemerror.\n");

printf("Childprocessisterminatedbyparentprocess.\n");

printf("Parentprocessexited!

\n");

return0;

}

3、

#include

#include

#include

#include

intmain()

{

intstatus;

if((status=system("ls"))<0)

{

printf("systemerror.\n");

exit(0);

}

return0;

}

4、

#include

#include

intmain(intargc,char*argv[])

{

FILE*fp;

intpid;

if(argc<=1)

{

printf("Usage:

%s\n",argv[0]);

return-1;

}

fp=fopen(argv[1],"w");

if(fp==NULL)

{

printf("Createdestfile%sfailed.\n",argv[1]);

return-2;

}

pid=getpid();

printf("ThecurrentproessIDis%d\n",pid);

fprintf(fp,"%d",pid);

return0;

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1