Linux文件系统调用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Linux文件系统调用

一、实验目的:

(1)掌握Linux提供的文件系统调用的使用方法。

(2)熟悉文件系统的系统调用用户接口。

(3)了解操作系统文件系统的工作原理和工作方式。

二、实验内容

编写一个文件工具filetools,使其具有以下功能:

0.退出

1.创建新文件

2.写文件

3.读文件

4.修改文件权限

5.查看当前文件权限并退出。

提示用户输入功能号,并根据用户输入的功能选择相应的功能。三、参考代码

#include

#include

#include

#include

#include

#include

#include

#include

#define MAX 128

int chmd()

{

int c;

mode_t mode=S_IWUSR;

printf("0.0700\n 1.0400\n 2.0200\n 3.0100\n");//还可以增加其他权限printf("Please input your choice(0-3):");

scanf("%d",&c);

switch(c)

{

case 0:chmod("file1",S_IRWXU);break;

case 1:chmod("file1",S_IRUSR);break;

case 2:chmod("file1",S_IWUSR);break;

case 3:chmod("file1",S_IXUSR);break;

default:printf("You have a wrong choice!\n");

}

return(0);

}

main()

{

int fd;

int num;

int choice;

char buffer[MAX];

struct stat buf;

char*path="bin/ls";

char*argv[4]={"ls","-1","file1",NULL};

while(1)

{

printf("*******************************\n");

printf("0.退出\n");

printf("1.创建新文件\n");

printf("2.写文件\n");

printf("3.读文件\n");

printf("4.修改文件权限\n");

printf("5.查看当前文件的权限并退出\n");

printf("************************************\n");

printf("Please input your choice(0-6):");

scanf("%d",&choice);

switch(choice)

{

case 0:close(fd);//关闭file1文件

exit(0);

case 1:

fd=open("file1",O_RDWR|O_TRUNC|O_CREAT,0750);//创建file1

if(fd==-1)

printf("File Create Failed!\n");

else

printf("fd=%d\n",fd); //显示fileID

case 2:

num=read(0,buffer,MAX);//从键盘里面读取最多128个字符

write(fd,buffer,num); //从读入的信息送到file1里去

break;

case 3:

/*把file1文件的内容在屏幕上输出*/

read(fd,buffer,MAX);

write(1,buffer,num);

break;

case 4:

chmd();

printf("Change mode success!\n");

break;

case 5:

execv(path,argv); //执行ls-l file1

break;

default:

printf("You have a wrong choice!\n");

}

}

}

相关文档
最新文档