Linux下C语言之文件操作
创建和打开的函数:
FILE *fopen(const char *path, const char *mode);
fopen()实现打开指定文件filename,其中的mode为打开模式,C语言中支持的打开模式如下表:
r, rb 以只读方式打开
w, wb 以只写方式打开。如果文件不存在,则创建该文件,否则文件被截断
a, ab 以追加方式打开。如果文件不存在,则创建该文件
r+, r+b, rb+ 以读写方式打开
w+, w+b, wh+ 以读写方式打开。如果文件不存在时,创建新文件,否则文件被截断
a+, a+b, ab+ 以读和追加方式打开。如果文件不存在,创建新文件
其中b用于区分二进制文件和文本文件,这一点在DOS、Windows系统中是有区分的,但Linux不区分二进制文件和文本文件。
读写的函数:
C库函数支持以字符、字符串等为单位,支持按照某中格式进行文件的读写,这一组函数为:
int fgetc(FILE *stream);
int fputc(int c, FILE *stream);
char *fgets(char *s, int n, FILE *stream);
int fputs(const char *s, FILE *stream);
int fprintf(FILE *stream, const char *format, ...);
int fscanf (FILE *stream, const char *format, ...);
size_t fread(void *ptr, size_t size, size_t n, FILE *stream);
size_t fwrite (const void *ptr, size_t size, size_t n, FILE *stream);
fread()实现从流stream中读取加n个字段,每个字段为size字节,并将读取的字段放入ptr所指的字符数组中,返回实际已读取的字段数。在读取的字段数小于num时,可能是在函数调用时出现错误,也可能是读到文件的结尾。所以要通过调用feof()和ferror()来判断。
write()实现从缓冲区ptr所指的数组中把n个字段写到流stream中,每个字段长为size个字节,返回实际写入的字段数。
另外,C库函数还提供了读写过程中的定位能力,这些函数包括
int fgetpos(FILE *stream, fpos_t *pos);
int fsetpos(FILE *stream, const fpos_t *pos);
int fseek(FILE *stream, long offset, int whence);
。。。
#define LENGTH 100
main()
{
FILE *fd;
char str[LENGTH];
/* 创建并打开文件 */
if (fd)
{
fputs("Hello, create file success!", fd);
# /* 写入Hello, software weekly字符串 */
fclose(fd);
}
fgets(str, LENGTH, fd);
## /* 读取文件内容 */
printf("%s\n", str);
fclose(fd);
}
编译一下,看看效果如何。。。
Linux下C语言之文件操作相关推荐
- linux下c语言读写文件操作,linux下的系统级c语言文件读写操作
最近初次接触Linux这么高端的东西,有种进城的感觉.进了linux,发现城里人说话做事的方式都很不一样. 个人感觉,初次接触linux主要的痛点在于命令行交互的方式,这就要求我接受城里人的思维,wh ...
- linux下c语言写文件,Linux下C语言之文件操作
C语言库函数的文件操作实际上是独立于具体的操作系统平台的,不管是在DOS.Windows.Linux还是在VxWorks中都是这些函数: 创建和打开的函数: FILE *fopen(const cha ...
- Linux下C语言的文件操作
代码: 1 #include <stdio.h> 2 #include <string.h> 3 #include <fcntl.h> 4 /*********** ...
- linux下c语言读写文件操作,Linux C语言 文件操作
打开函数 fopen 的原型如下. FILE * fopen(char *filename, char *mode); 返回值:打开成功,返回该文件对应的 FILE 类型的指针:打开失败,返回 NUL ...
- Linux下C编程-----IO/文件操作 模拟linux ls程序显示文件系统树形结构(2)
Linux下的IO/文件操作练习,知识虽然简单 但是往往基础容易被忽略,偶尔的练习是有必要的. 练习printf /****************************************** ...
- Linux下编辑并保存文件操作步骤
墙裂建议看下,戳:vi 和 VIM的区别 详细介绍了编辑文件保存 步骤一: 打开命令控制台找到要编辑的文件,可执行命令ls看看下面有几个文件 如要编辑的文件名称为:test 步骤二: 打开文件 --命 ...
- linux中system.img文件,Linux下对system.img文件操作
接下来要注意:要分清通常的Linux和ylmfos的区别 先输入指令 sudo su(通常的Linux和ylmfos都要输) 然后出现Password:,输入你的用户密码,直接输入,但是看不见,但其实 ...
- linux文件读写 c语言,Linux 下 C语言大文件读写(大于4G)
以下的做法整理自论坛上的帖子. 如何create大文件 要大就非常大,1T吧. 有两种方法: 一.dd dd if=/dev/zero of=1T.img bs=1G seek=1024 count= ...
- linux下c语言tcp文件传输,C语言实现TCP通信
导读 如果想要自己写一个服务器和客户端,我们需要掌握一定的网络编程技术,个人认为,网络编程中最关键的就是这个东西--socket(套接字).socket(套接字):简单来讲,socket就是用于描述I ...
最新文章
- postgresql创建只读账号
- 科学家正让AI自己做实验,想要机器摆脱人类的直觉
- SQL Server数据库中、获得刚插入新记录的自动ID号
- [Jarvis OJ - PWN]——Typo(内涵peak小知识)
- ADI官方源码快速搭建demo工程验证设计的正确性
- css用一张大图片来设置背景的技术真相
- linux内存和flash区别,嵌入式Linux概念NOR/NAND Flash的差别
- matlab 高级函数 —— circshift、squeeze
- 新增10亿元作支持 重庆将多举措提升科技创新能力
- Atitit 编程语言常用算法attilax总结
- 题目管理后台系统_推荐一套GitHub开源通用后台管理系统
- 征战FPGA之制作FLASH烧写用的bin文件
- Excel VBA入门教程
- 如何删除顽固文件或文件夹?
- Thumbnails压缩图片
- webassembly介绍
- .NET 高级架构师0003 架构师之路(2)---架构师的职责
- 【wmi】C++获取windows激活状态
- 桌面文件删除了怎么恢复
- 枪火重生灵界狂潮攻略 (二)老虎流派
热门文章
- 基于深度学习的文本数据特征提取方法之Glove和FastText
- SAP MM ME57界面看到的供应源跟Source List主数据不一致?
- 10岁宝宝制作的三国演义题材的海报
- 深度学习的搜索应用Searching with Deep Learning
- SAP MM ME21N 创建PO时报错 - Net price in CNY becomes too large – 之原因分析
- 一句话总结LLE(流形学习)
- 史上第一次,AI能够自学翻译地球上的任何语言了
- 清华博士后用10分钟讲解AlphaCode背后的技术原理,原来程序员不是那么容易被取代的!...
- 鸿蒙系统全面解析,诞生背景、技术细节生态圈一文看懂
- 2020技术趋势报告-中文版