《嵌入式系统》文件 I/O 编程课件(未完)

在这里插入图片描述
在这里插入图片描述

把底层的硬件接口抽象成一个虚拟的系统,只需要知道接口,利用用户程序去调用即可。

本章节主要部分:目录操作、文件操作

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

0标准输入、1标准输出、2标准错误

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
0777 代表一个八进制数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#include <stdio.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <errno.h>
#include <unistd.h>

int main(int argc, char *argv[])
{
    char *fileName = "aaa";
    int err;
    err = mkdir(argv[1], 0777);
    char dir[2556];
    struct stat st;
    getcwd(dir, 256);
    printf("--- %s \n", dir);
    stat(argv[1], &st);
    if (S_ISDIR(st.st_mode))
    {
        printf("is dir!\n");
    }
    else if (S_ISREG(st.st_mode))
    {
        printf("is file!\n");
    }
    else
    {
        printf("other! \n");
    }
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2. 第二次课

#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
#include <sys/stat.h>

int main(int argc, char *argv[])
{
    DIR *d;
    struct dirent *e;
    mkdir(argv[1], 0666);

    d = opendir("/home/");

    while ((e = readdir(d)) != NULL)
    {
        printf("%s\n", e->d_name);
    }
    closedir(d);
}
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
#include <sys/stat.h>
#include <unistd.h>

int main(int argc, char *argv[])
{
    DIR *d;
    struct dirent *e;
    char name[128];
    struct stat buf;

    printf("Please input the name: ");
    scanf("%s", name);
    stat(name, &buf);
    if (S_ISDIR(buf.st_mode))
    {
        printf("is dir, the files are: \n");
        d = opendir("/home/lighthouse");
        while ((e = readdir(d)) != NULL)
        {
            printf("%s\n", e->d_name);
        }
        closedir(d);
    }
    else if (S_ISREG(buf.st_mode))
    {
        printf("is file! \n");
    }
    else if (S_ISLNK(buf.st_mode))
    {
        printf("is link file!\n");
    }
}
#include <stdio.h>
#include <errno.h>
#include <sys/types.h>
#include <fcntl.h>

int main(int argc, char *argv[])
{
    int fd; // 文件描述符
    fd = open(argv[1], O_RDWR | O_SYNC);
    if (fd < 0)
        printf("error! \n");
    else
        printf("ok! \n");
    close(fd);
    return 0;
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

okfang616

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值