深入了解linux系统—— 基础IO(上)
文件
在之前学习C语言文件操作时,我们了解过什么是文件,这里简单回顾一下:
文件存在磁盘中,文件有分为程序文件、数据文件;二进制文件和文本文件等。
详细描述见文章:文件操作——C语言
- 文件在磁盘里,磁盘是永久性存储介质,因为文件在磁盘上的存储是永久性的;
- 磁盘是外设(是输入设备也是输出设备);
- 本质上对磁盘是文件的所有操作,都是对外设的输入和输出;也就是I/O。
对于文件的认识:
- 文件 = 文件内容 + 文件属性
- 文件大小是0KB的文件也是占用磁盘空间的
- 所有对于文件的相关操作都是对文件内容和文件属性就行操作。
在系统层面理解
- 我们操作文件(打开,关闭文件),本质上是进程对于文件的操作;
- 磁盘的管理者是操作系统;
- 我们在C/C++使用库函数来对文件进行读写操作,本质上是通过文件相关的系统调用去完成的。
C文件操作
打开和关闭文件
在C语言当中,我们通过fopen来打开文件,fclose来关闭文件;
- fopen:打开文件,如果打开成功返回一个FILE*类型的指针,执行被打开的文件;打开失败则返回NULL;
- fclose:关闭文件,传参FILE*类型的指针,关闭指定文件。
#include int main() { FILE* fp = fopen("log.txt","w");//以读方式打开,文件不存在就新建 if(fp == NULL){ perror("fopen"); return 1; } //.... fclose(fp);//关闭文件 return 0; }
打开文件的方式
我们知道在C语言的fopen接口打开文件是有很多打开方式
r:以读方式打开、w以写方式打开、a以追加方式打开。
r方式,当文件不存在时就打开文件失败;
w方式,当文件不存在时就新建文件(在当前工作路径下创建,进程当中存放了当前工作路径);如果文件存在会清空当前文件的内容;然后在进入写入。
a方式,追加,当文件不存在就新建文件;如果文件已经存在,打开时不会清空文件内容,而是在文件末尾进行写入
写文件
当我们以w/r方式打开一个文件,我们要将内容写到文件当中;
我们可以使用fputc、fputs、fwrite、fprintf进行文件的写入;
#include int main() { FILE* fp = fopen("log.txt","w");//以读方式打开,文件不存在就新建 if(fp == NULL){ perror("fopen"); return 1; } for(char ch = 'a';ch fputc(ch,fp); } char* str = (char*)"I love you\n"; fputs(str,fp); int x = 100; fprintf(fp,"x = %d\n",x); fclose(fp);//关闭文件 return 0; } FILE* fp = fopen("log.txt","w");//以读方式打开,文件不存在就新建 if(fp == NULL){ perror("fopen"); return 1; } for(int i = 0;i printf("%c",fgetc(fp)); } printf("\n"); char buff[20]; fgets(buff,12,fp); //buff[11] = '\0'; printf("%s",buff); int x; fscanf(fp,"x = %d",&x); printf("x = %d\n", x); fclose(fp);//关闭文件 return 0; } if(flag & ONE) printf("ONE "); if(flag & TWO) printf("TWO "); if(flag & THREE) printf("THREE "); printf("\n"); } int main() { func(ONE); func(ONE | TWO); func(ONE | THREE); func(ONE | TWO | THREE); return 0; } int fd = open("love.txt",O_CREAT | O_WRONLY,0666); if(fd
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。