ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2022-01-17 15:01:24  阅读:126  来源: 互联网

标签:fp 文件 ch 嵌入式 API IO fopen


文件编程

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<stdio.h>
#include<stdlib.h>
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;
}

在这里插入图片描述

标签:fp,文件,ch,嵌入式,API,IO,fopen
来源: https://blog.csdn.net/passwordee/article/details/122534590

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有