实验四Linux下的C语言编程Word下载.docx

上传人:b****1 文档编号:1301367 上传时间:2023-04-30 格式:DOCX 页数:7 大小:15.86KB
下载 相关 举报
实验四Linux下的C语言编程Word下载.docx_第1页
第1页 / 共7页
实验四Linux下的C语言编程Word下载.docx_第2页
第2页 / 共7页
实验四Linux下的C语言编程Word下载.docx_第3页
第3页 / 共7页
实验四Linux下的C语言编程Word下载.docx_第4页
第4页 / 共7页
实验四Linux下的C语言编程Word下载.docx_第5页
第5页 / 共7页
实验四Linux下的C语言编程Word下载.docx_第6页
第6页 / 共7页
实验四Linux下的C语言编程Word下载.docx_第7页
第7页 / 共7页
亲,该文档总共7页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

实验四Linux下的C语言编程Word下载.docx

《实验四Linux下的C语言编程Word下载.docx》由会员分享,可在线阅读,更多相关《实验四Linux下的C语言编程Word下载.docx(7页珍藏版)》请在冰点文库上搜索。

实验四Linux下的C语言编程Word下载.docx

close(),lseek()

#include<

sys/types.h>

sys/stat.h>

fcntl.h>

stdlib.h>

errno.h>

stdio.h>

unistd.h>

intmain(intargc,charconst*argv[])

{

intfile1,file2,file3;

if(argc!

=4){

printf("

Usage:

copyfile1file2file3\n"

);

exit

(1);

}

file1=open(argv[1],O_RDONLY);

file2=open(argv[2],O_RDONLY);

file3=open(argv[3],O_CREAT|O_RDWR,S_IRWXU);

intn;

charbuf[1024];

while((n=read(file1,buf,1024))>

0)

if(write(file3,buf,n)!

=n)

writeerror\n"

if(n<

read%serror\nErrno=%d\n"

argv[1],errno);

if(lseek(file3,30,SEEK_END)==-1)

printf("

lseekerror"

while((n=read(file2,buf,1024))>

0)

argv[2],errno);

exit(0);

close(file1);

close(file2);

close(file3);

success\n"

return0;

}

2、编程实现renam(即LINUX下的rename)命令,功能是实现文件的重命名。

renamfileafileb;

其中filea为源文件,fileb为目标文件。

程序执行时应显示出命令行的所有参数,并给出重命名前后两个文件的大小、索引节点号及最近一次状态改变的时间。

程序可能涉及到的系统调用:

read(),write(),open(),stat(),close(),link(),unlink()

time.h>

externinterrno;

intmain(intargc,constchar*argv[]){

structstatbuf1,buf2;

=3){

renameoldfilenewfile\n"

if(stat(argv[1],&

buf1)==-1){

starerror\nerrnois%d\n"

errno);

}

使用stat()显示文件%s的信息\n"

argv[1]);

%s大小-->

%d\n"

argv[1],(int)buf1.st_size);

%s索引节点号-->

argv[1],(int)buf1.st_ino);

%s最后一次修改时间-->

argv[1],(int)buf1.st_mtime);

--------------------------------------------------\n"

if(rename(argv[1],argv[2])==-1){

renameerror\nErrno%d\n"

exit

(1);

-------------------renamesuccess------------------\n"

if(stat(argv[2],&

buf2)==-1){

starerror\nErrnois%d\n"

argv[2]);

argv[2],(int)buf2.st_size);

argv[2],(int)buf2.st_ino);

argv[2],(int)buf2.st_mtime);

3、编程实现lnk命令,执行格式:

lnkf1f2f3。

具体要求如下:

⑴分别使用link()和symlink()为文件f1创建其硬链接文件f2和符号

链接文件f3。

⑵分别使用stat()和lstat()调用给出文件f2和f3大小、索引节点号、权限、存放该文件的设备号及文件修改时间,比较其异同。

说明原因。

intmain(intargc,char*argv[]){

structstatbuf1,buf2,buf3,buf4;

link_examoldfilelinkfnsymlinkfn\n"

if(link(argv[1],argv[2])==-1){

linkerror\nErrno=%d\n"

errno);

if(symlink(argv[1],argv[3])==-1){

symlinkerror\nErrno=%d\n"

if((stat(argv[2],&

buf1)==-1)|(stat(argv[3],&

buf2)==-1)){

使用stat()显示文件%s和%s的信息\n"

argv[2],argv[3]);

argv[2],(int)buf1.st_size);

argv[3],(int)buf2.st_size);

argv[2],(int)buf1.st_ino);

argv[3],(int)buf2.st_ino);

%s权限-->

argv[2],(int)buf1.st_mode);

argv[3],(int)buf2.st_mode);

%s文件所在设备号-->

argv[2],(int)buf1.st_dev);

argv[3],(int)buf2.st_dev);

argv[2],(int)buf1.st_mtime);

argv[3],(int)buf2.st_mtime);

****######@@@@@@&

&

STATEND&

@@@@@@****\n"

if((lstat(argv[2],&

buf3)==-1)|(lstat(argv[3],&

buf4)==-1)){

lstarerror\nerrnois%d\n"

使用lstat()显示文件%s和%s的信息\n"

%s大小是-->

argv[2],(int)buf3.st_size);

argv[3],(int)buf4.st_size);

argv[2],(int)buf3.st_ino);

argv[3],(int)buf4.st_ino);

argv[2],(int)buf3.st_mode);

argv[3],(int)buf4.st_mode);

argv[2],(int)buf3.st_dev);

argv[3],(int)buf4.st_dev);

argv[2],(int)buf3.st_mtime);

argv[3],(int)buf4.st_mtime);

LSTATEND&

3

THANKS!

!

致力为企业和个人提供合同协议,策划案计划书,学习课件等等

打造全网一站式需求

欢迎您的下载,资料仅供参考

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

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2