操作系统lab8(文件系统调用)

实验八  文件系统调用实验(综设实验)
1. 实验目的
熟悉和掌握Unix/Linux环境下的常用文件/目录的常用System Call;
了解Unix/Linux文件系统结构,特殊文件的作用和操作方法;
加深对《文件系统》一章内容的理解;
2. 实验要求
独立完成实验内容;
必要的文档和注释;(简单要求如下)
3. 实验内容
编写一个文件工具filetools,使其具有以下功能:
******************************
1. 退出
2. 创建新文件
3. 写文件
4. 读文件
5. 修改文件权限
6. 查看当前文件权限并退出
******************************
提示用户输入功能号,并根据用户输入的功能选择完成相应的功能。
程序:
#include<stdio.h>
#include<sys/types.h>
#include<unistd.h>
#include<fcntl.h>
#include<sys/stat.h>
#include<syslog.h>
#include<string.h>
#include<stdlib.h>
装卸过桥#define MAX 128
int chmd();
int chmd ()
{
    int c;
    mode_t mode=S_IWUSR;
    printf(" 0. 所有用户读写执行\n 1. 所有用户只可读\n 2. 所有用户只可写 \n 3. 所有用户只可执行\n 4. 用户组读写执行\n 5. 用户组只可读\n 6. 用户组只可写\n 7. 用户组只可执行\n ");
    printf("请选择0-7:");
    scanf("%d",&c);
    switch(c)
    {
        case 0: chmod("newfile",S_IRWXU);break;
        case 1: chmod("newfile ",S_IRUSR);break;
        case 2: chmod("newfile ",S_IWUSR);break;
        case 3: chmod("newfile ",S_IXUSR);break;
      case 4: chmod("newfile ", S_IRWXG);break;
      case5: chmod("newfile ",S_IRGRP);break;
      case6: chmod("newfile ",S_IWGRP);break;
case7: chmod("newfile ", S_IXGRP);break;
        default:printf("error 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","-l","newfile",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("请选择(0-5):");
    scanf("%d",&choice);   
   
        switch(choice)
        {
          case 0:close(fd);
            exit(0);
      case 1:
                fd=open("newfile",O_RDWR|O_TRUNC|O_CREAT,0750);
                if(fd==-1)
                    printf("File Create Failed!\n");
                else
                    printf("fd = %d\n",fd);
                break;
            case 2:                   
                num=read(0,buffer,MAX);
                write(fd,buffer,num);
                break;
            case 3:
       
募捐箱                read(fd,buffer,MAX);
                write(1,buffer,num);
                break;
            case 4:
                chmd ();
                printf("成功改变格式!\n");
                break;
case 5:
                  execv(path,argv);
                break;         
            default:
                printf("error choice!\n");紫砂饮水机
        }
  }   
}
执行程序:
程序窗口
1. 创建新文件newfile
2. 写文件为hello world!
3. 读文件
4. 修改文件权限
5. 查看文件权限
4. 精轧管参考资料
教材第六章
LINUX系统编程
5. 评分标准
A——选做内容/必做内容功能完善,编程风格好,人机接口界面好;
B——必做内容功能完善,完成部分选做内容,编程风格好,人机接口界面良好;
C——完成必做内容,编程风格良好;
D——能完成必做内容;
E——未按时完成必做内容,或者抄袭(雷同者全部为E)。

本文发布于:2024-09-22 04:23:59,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/196303.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:文件   内容   权限   实验   完成   功能
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议