博客
关于我
二、Linux文件操作示例
阅读量:83 次
发布时间:2019-02-26

本文共 1426 字,大约阅读时间需要 4 分钟。

Linux文件操作示例

Linux文件操作有两种方式,c库函数和linux文件api函数,这里主要讲系统api函数,值得注意的是,文件写操作是写到缓存,不是直接写在内存文件里面,所以要更新文件或者关闭文件

linux系统文件api函数

 头文件
  #include <sys/types.h>
  #include <sys/stat.h>
  #include <fcntl.h>
函数原型
 创建
  int creat(const char *filename, mode_t mode);
参数 filename 文件名字字符串形式
Mode 权限
返回 成功0 失败 -1

打开

int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);
参数 filename 文件名字字符串形式
 flags 打开模式,读操作需要读模式,写操作需要写模式
  Mode 权限
 返回 文件编号
读写
int read(int fd, const void *buf, size_t length);
参数
 fd 文件编号
 buf 读出数据要保存数据的数组
 length 要读的长度
 返回 实际读出的长度  
 
int write(int fd, const void *buf, size_t length);
参数
 fd 文件编号
 buf 读出数据要保存数据的数组
length 数据长度
返回 成功0 失败 -1

关闭

int close(int fd);
参数 fd 文件编号
返回 成功 0 失败-1

文件定位

int lseek(int fd, offset_t offset, int whence);
文件操作流程
 读操作流程 打开文件–读文件–关闭文件
 写操作流程 打开文件–写文件–关闭文件
程序示例

#include 
#include
#include
#include
void write_file(char *s){   	int fd;		fd = open("hello.txt", O_CREAT | O_RDWR, S_IRUSR | S_IWUSR); //创建并打开文件	if(fd > 0)//创建成功或者打开成功	{   		write(fd, s, sizeof(s));		close(fd);	}	else	{   		}}
int read_file(char *s,int len){   	int fd,rtn_len;		fd = open("hello.txt", O_RDWR);	rtn_len = read(fd, s, len); /* 读取文件内容 */	close(fd);	return rtn_len;}
int main(){   	char testbuf[100] = {   0},len;	//写操作	write_file("hello guoguo\n");	//读操作	len = read_file(testbuf,100);	testbuf[len] = ‘/0’;	printf(“%s”, testbuf);}

转载地址:http://vxwu.baihongyu.com/

你可能感兴趣的文章
MTK Android 如何获取系统权限
查看>>
MySQL - 4种基本索引、聚簇索引和非聚索引、索引失效情况、SQL 优化
查看>>
MySQL - ERROR 1406
查看>>
mysql - 视图
查看>>
MySQL - 解读MySQL事务与锁机制
查看>>
mysql 1264_关于mysql 出现 1264 Out of range value for column 错误的解决办法
查看>>
mysql 1593_Linux高可用(HA)之MySQL主从复制中出现1593错误码的低级错误
查看>>
mysql ansi nulls_SET ANSI_NULLS ON SET QUOTED_IDENTIFIER ON 什么意思
查看>>
MySQL Binlog 日志监听与 Spring 集成实战
查看>>
multi-angle cosine and sines
查看>>
Mysql Can't connect to MySQL server
查看>>
mysql case when 乱码_Mysql CASE WHEN 用法
查看>>
Multicast1
查看>>
MySQL Cluster 7.0.36 发布
查看>>
Multimodal Unsupervised Image-to-Image Translation多通道无监督图像翻译
查看>>
multipart/form-data与application/octet-stream的区别、application/x-www-form-urlencoded
查看>>
mysql cmake 报错,MySQL云服务器应用及cmake报错解决办法
查看>>
Multiple websites on single instance of IIS
查看>>
mysql CONCAT()函数拼接有NULL
查看>>
multiprocessing.Manager 嵌套共享对象不适用于队列
查看>>