在Linux编程需要读写文件时,有两种方式:
(1)ANSIC: 使用stdio.h里的函数。fopen, fclose, fwrite, fread
(2)Linux API:Linux提供了另外一套API用于操作文件。open, close,  write,  read

ANSI C优点:被各平台都支持,因此一份代码可以适用多种平台。

ANSIC函数:
(1)文件路径: 使用/
(2)文本文件时,换行符有区别
windows: \r\n
linux: \n
注:换行符是一个约定俗成的东西

Linux API文件操作
以下三者选一:
O_RDONLY 只读方式
O_WRONLY 以只写方式打开文件
O_RDWR 以可读写方式打开文件
额外的标识位:
O_CREAT可与O_WRONLY联用,若欲打开的文件不存在则自
动建立该文件
O_TRUNC  可与O_WRONLY联用,在打开文件时清空文件
O_APPEND可与O_WRONLY联用,表示追加内容
O_NONBLOCK 表示以“非阻塞”方式读/写数据时

过程如下:

当前文件和路径如下:

使用ANSIC函数

#include <stdio.h>
#include <string.h>int main(){FILE *fp = fopen("/root/CDemo/CFile/a.txt", "wb");if(!fp){printf("open failed!\n");return -1;}char buf[] = "hello\nworld\n";fwrite(buf, 1, strlen(buf), fp);fclose(fp);return 0;
}

运行截图如下:

使用Linux API

#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>int main(){int fd = open("/root/CDemo/CFile/b.txt", O_WRONLY | O_CREAT, 0644);if(fd < 0){printf("open failed!\n");return -1;}char data[12] = "Linux";write(fd, data, 5);close(fd);return 0;
}

读取文件:

#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>int main(){int fd = open("/root/CDemo/CFile/a.txt", O_RDONLY);if(fd < 0){printf("open failed!\n");return -1;}char data[128];int n = read(fd, data, 128);if(n > 0){data[n] = 0;printf("read:%s \n", data);}close(fd);return 0;
}

运行截图如下:

Linux学习笔记-Linux下读写文件相关推荐

  1. Linux学习笔记(二)——文件与磁盘系统

    Linux学习笔记(二)--文件与磁盘系统 文件操作 ls [选项][目录名]-l :列出长数据串,包含文件的属性与权限数据等-a :列出全部的文件,连同隐藏文件(开头为.的文件)一起列出来(常用)- ...

  2. linux学习笔记yum源.repo文件的理解

    linux学习笔记 repo文件是yum 源( 软件仓库 )的 配置 文件,通常一个repo文件定义了一个或者多个软件仓库的细节内容(记录了包的下载路径,相当于寻宝图,告诉yum去哪里寻找将要下载的软 ...

  3. Linux学习笔记-Linux下的设备文件

    在Linux下,有一种文件的类型叫设备文件. 在/dev目录下的文件基本上都是设备文件,文件属性以c或b打头(charactor, block) 设备文件用于代表一个物理设备 例如,声卡.显卡.键盘. ...

  4. Linux学习笔记010---CentOS7下安装FTP服务

    JAVA技术交流QQ群:170933152 按照这个就可以 1.安装vsftp 1.1.安装vsftp,测试安装的vsftpd的版本是:vsftpd.x86_64 0:3.0.2-11.el7_2 y ...

  5. Linux学习笔记-用户身份与文件权限

    一.用户身份与能力 在Linux RHEL8中,用户身份为: 管理员UID为0:系统的管理员用户 系统用户UID为1~999:Linux系统为了避免因某个服务程序出现漏洞而被黑客提权至整台服务器,默认 ...

  6. linux学习笔记 linux内核6.0.2目录结构

    一.linux内核目录 arch 包含和硬件体系结构相关的代码,每种平台占一个相应的目录,如i386.arm.arm64.powerpc.mips等.Linux内核目前已经支持30种左右的体系结构.在 ...

  7. Linux学习笔记——Linux、命令 01

    操作系统的发展史 Unix 1965年之前的时候,电脑并不像现在一样普遍,它可不是一般人能碰的起的,除非是军事或者学院的研究机构,而且当时大型主机至多能提供30台终端(30个键盘.显示器),连接一台电 ...

  8. [Linux学习笔记] Linux历史发展与应用

    2019独角兽企业重金招聘Python工程师标准>>> UNIX发展历史: (1) 1965年,美国麻省理工学院(MIT).通用电气公司(GE)及AT&T的贝尔实验室联合开发 ...

  9. Linux学习笔记014---文件及文件夹权限设置_以及文件、文件夹的删除_移动_复制操作

    JAVA技术交流QQ群:170933152 加入-R 参数,就可以将读写权限传递给子文件夹 例如chmod -R 777 /home/mypackage 那么mypackage 文件夹和它下面的所有子 ...

最新文章

  1. 国外计算机音乐专业,音乐留学干货 | 国外电子音乐专业留学如何?
  2. Step By Step(Lua调用C函数)
  3. 注册表故障恢复 必须使用记录或另一备份以恢复包含系统注册表数据的文件。恢复成功...
  4. JS 面向对象与原型
  5. java面试题jvm_经典面试题|讲一讲JVM的组成
  6. [HYSYS学习]逻辑单元-循环器
  7. 联想笔记本小新air14,Fn+功能键/Insert键
  8. 《聪明人用方格笔记本》读书笔记
  9. 男生拍照姿势大全,这样拍才帅
  10. 三大运营商的网上流量卡数据对比,看看你会选哪一个?
  11. java cause_Cause: java.lang.UnsupportedOperationException
  12. postman设置前置条件
  13. VB制作网页自动填表
  14. CleanMyMac X激活码免费版安装包MAC清理工具
  15. DataGrip 禁用自动同步
  16. 如何拉开与周围人的差距?这5个超强的工具网站,助你一臂之力
  17. 初学C语言常见的错误
  18. 雅虎统计基础数据定义
  19. paddlepaddle 20 指数移动平均(ExponentialMovingAverage,EMA)的实现与使用(支持静态图与动态图)
  20. 颜色渐变丶渲染效果类---(Unity自学笔记)

热门文章

  1. 一文讲透,关于搭建指标体系,整理的重要知识点都在这里了
  2. 获得磁盘的飞鸽传书描述信息
  3. 飞秋 包括《java就业培训课程》
  4. 让主页或Blog日访问量增加3000
  5. 规范化编程:ANSI和UNICODE的使用
  6. 德不配位,势必遭殃!人事斗争,劝你不要参与!
  7. 第 1 节:前端面试指南 — 简历篇
  8. HTML5新特征、窍门和技术(16~20)
  9. python html压缩包,用python制作一个简单html压缩
  10. 云主机安装linux发行版,用Ubuntu服务器版部署一个私有云