嵌入式C开发 文件IO介绍 文件系统及文件描述符

嵌入式C开发 文件IO介绍 文件系统及文件描述符,第1张

嵌入式C开发 文件IO介绍 文件系统及文件描述符

文件编程

Linux中文件的作用

文件IO:一切皆文件!(VFS 虚拟文件管理系统 以此来实现的)-普通文件,d目录文件,c/b设备文件,l链接文件(p管道文件,s套接字(共享文件),f堆栈文件)

为什么要用文件来管理一切?
1、由于要存储大量文件,但如何对这些文件实施有效的管理呢?—文件系统(管理文件的软件,把文件分类管理)
2、Linux根目录简介—根文件系统(根目录)-----bin(普通用户)sbin(管理员)dev(设备文件)etc(配置文件)lib(系统运行的库)usr/lib usr/include usr/sbin usr/bin、home(普通用户)、root(超级用户)、boot、proc、sys

*** 作普通文件:C库函数(相当于中间件)/API(系统调用)
*** 作c/b设备文件:fread fwrite

pwd:在Linux层次结构中,想要知道当前所处的目录,可以用pwd命令,该命令显示整个路径名。

用户空间:fopen
C库:实现fopen()
{
API;(用户编程接口)
}
内核空间:访问文件

文件IO:初级IO(系统调用API
文件),标准IO(库函数),高级IO(文件的高级 *** 作,高级API)
文件IO的重要性

文件描述符

文件ID
动态分配:只要当 *** 作这个文件时,系统才会给你分配文件描述符。关闭就收回。
非负整数:1、从编号3开始 2、0,1,2三个文件秒负数有其他作用

无缓冲访问文件(系统调用)

creat
open:C库(可以跨平台)提供的
write:内核提供的
read
lseek
close
经典文件 *** 作–文件拷贝
0/1/2这三个文件描述符
fcntl
loctl

作业

在一个文件里面写东西,再把其内容打印出来。

#include
#include
int main()
{
    FILE *fp;
    if((fp=fopen("1.txt","w"))==NULL)
    {
        printf("error");
        exit(0);
    }
    char ch;
    ch=getchar();
    while(ch!='n')
    {
        fputc(ch,fp);
        ch=getchar();
    }
    fclose(fp);
    fp=fopen("1.txt","r");
    ch=fgetc(fp);
    while(!feof(fp))
    {
        printf("%c",ch);
        ch=fgetc(fp);
    }
    printf("n");
    fclose(fp);
    return 0;
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5704171.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存