1111

Posted hazelnut

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1111相关的知识,希望对你有一定的参考价值。

#include<stdio.h> //标准输入输出函数
#include<stdlib.h> //C、C++语言的最常用的系统函数
#include<sys/types.h>
#include<sys/stat.h>
#include<syslog.h>
#include<string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>


#define MAX 10
int chmd()
{
    int c;
    printf("Please input your choice of change the mode of the file :");
    scanf("%d", &c);
    switch(c)
    {
        case 0:chmod("file1", S_IRWXU); break;
            // Mode flag: Read, write, execute by user.
            //依据自己的理解定义其他case中文件权限的情况。
        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! ");
    }
    return 0;
}

int main()
{
    int fd;
    int num;
    int choice;
    char buffer[MAX];
    struct stat st;
    char* path="/bin/ls";
    char* argv[4]={"ls","-l","file1",NULL};
    while(1)
    {
        printf("************************* ");
        printf("0. 退出 ");
        printf("1. 创建新文件 ");
        printf("2. 写文件 ");
        printf("3. 读文件 ");
        printf("4. 修改文件权限 ");
        printf("5. 查看当前文件的权限并退出 ");
        printf("************************* ");
        printf("Please input your choice(0-6):");
        scanf("%d", &choice);
        
        switch(choice)
        {
            case 0:close(fd);
                exit(0);
            case 1:
                fd=open("file1",O_RDWR|O_TRUNC|O_CREAT,0750);
                num = 0;
                /*
                 O_RDWR : file open mode: Read/Write
                 O_TRUNC : file open mode: Truncate file to length 0
                 O_CREAT : file open mode: Create if file does not yet exist.
                 0750: file access permission bits -rwxr-x---当前用户rwx;同组用户r-x; 其他用户无权限
                 */
                
                if(fd==-1)
                    printf("File Create Failed! ");
                else {
                    printf("fd=%d ",fd);
            close(fd);
        }
                break;

            case 2:
        fd = open("file1", O_WRONLY|O_APPEND);
                scanf("%s", buffer);
        int len = (int)strlen(buffer);
        if(len + num < MAX)
                    num += write(fd, buffer, len);
        else printf("Write failed! ");
        close(fd);
                break;
                //补充代码:从键盘里面读取信息,写到file1里面
            case 3:
        fd = open("file1", O_RDONLY);
        memset(buffer, ‘‘, sizeof buffer);
        if(read(fd, buffer, MAX) >= 0)
                    printf("%s ", buffer);
        else printf("Read failed! ");
        close(fd);
                break;
                //补充代码:把file1文件的内容在屏幕上输出
            case 4:
                chmd();
                printf("Change mode success! ");
                break;
            case 5:
                execv(path, argv); //-ls -l 显示文件完整的信息,包括权限,拥有者,拥有组,文件名,大小等
                break;
            default:
                printf("You have a wrong choice! ");
        }
    }
}

以上是关于1111的主要内容,如果未能解决你的问题,请参考以下文章

遇到 SQL 错误 1111 的问题

Codeforces Round #723 (Div. 2)- I Hate 1111 - 数学

这是 Zeller 程序的代码。除了 1111 年 2 月 31 日、1111 年 6 月 31 日这通常应该是错误的日期之外,一切都运行良好。 [关闭]

错误代码1111。无效使用组功能

1111

88E1111