文件IO

文件IO

记录常用的一些 IO 接口

标准IO

FILE* fopen(const char* path,const char* mode);
/***********************************************************
@path	操作的文件
@mode	操作的权限	("r","r+","w","w+","a","a+")
返回值		成功	文件指针	失败	NULL
***********************************************************/
//获取一个字符
int fgetc(FILE* STREAM);
int getc(FILE* STREAM);
//从标准输入获取一个字符
int getchar();
//行读取
char* fgets(char* s int size,FILE* stream);
char* gets(char* s);
/***********************************************************
@s		自定义的缓冲区指针
@size	自定义的缓冲区大小
@stream  操作文件指针
返回值		成功	自定义缓冲区指针 	返回	NULL
***********************************************************/
//块读取
size_t fread(void* ptr,size_t size,size_t nmemb,FILE* stream);
/***********************************************************
@ptr	自定义的缓冲区大小
@size	数据块大小
@nmemb	数据块的个数
@stream	操作的文件指针
返回值		成功	 nmmemb(读取的数据块个数)
		  失败   nmmemb(读取的数据块个数)
***********************************************************/
//写入一个字符
int fputc(int c,FILE* stream);
int putc(int c,FILE* stream);
//向标准输出 输出一个字符
int putchar(int c);
//行写入
int fputs(const char *s,FILE* stream);
int puts(const char *s);
/***********************************************************
@s		自定义缓冲区指针
@stream	操作的文件指针
返回值		成功	非负整数	失败	EOF
***********************************************************/
//块写入
size_t fwrite(const void* ptr,size_t size,size_t nmemb,FILE* stream);
/***********************************************************
@ptr	自定义的缓冲区大小
@size	数据块大小
@nmemb	数据块个数
@stream 操作的文件指针
***********************************************************/
//偏移文件指针
int fseek(FILE* stream,long offset,int whence);
/***********************************************************
@stream		操作的文件指针
@offset		偏移量
@whence		SEEK_SET
			SEEK_CUR
			SEEK_END
返回值		成功	0	失败	-1
***********************************************************/
//获取操作文件的当前偏移量
long ftell(FILE* stream);

int fprintf();		//向指定文件中输出格式化字符串
int sprintf();		//向指定缓冲区输出格式化字符串

系统IO


int open(const char *pathname, int falgs);
int open(const char *pathname, int falgs, modes_t mode);
/***********************************************************
@pathname    操作的文件
@falgs		 O_RDONLY		 只读
			O_WRONLY 		只写
			O_RDWR			可读可写
			O_APPEND		末尾追加
			O_CLOEXEC		用exec函数时,该文件描述符应该被关闭
			0_CREAT			文件不存在会自动创建
可以用 位或 操作写入多个参数
@mode		文件权限(777) 只能是 falgs 是 O_CREAT/O_TMPFILE
返回值		  成功:文件描述符(非负整数,本质就是数组下标)
			失败:-1
***********************************************************/
ssize_t write(int fd,const void *buf, size_t count);
/***********************************************************
@fd			文件描述符
@buf		缓冲区
@count		预期写入的字节数
返回值	成功	成功写入的字节数
	  失败  -1
***********************************************************/
ssize_t read(int fd, void *buf, size_t count);
/***********************************************************
@fd			文件描述符
@buf		缓冲区
@count		预期读取的字节数
返回值	成功	成功读取的字节数
	  失败  -1
***********************************************************/
off_t lseek(int fd,off_t offset, int whence);
/***********************************************************
@fd			文件描述符
@offset		 偏移量
@whence		 SEEK_SET
			SEEK_CUR
			SEEK_END
光标的起始位置
返回值	成功	返回相较文件开头的偏移量
	  失败   -1
***********************************************************/
void *mmp(void *addr,size_t length, int prot, int flags,int fd,off_t offset);
/***********************************************************
@addr	  	一般填NULL,由内核自动寻找适合的内存空间
@length		lcd屏的大小,以字节为单位
@prot		PROT_EXEC
			PROT_READ
			PROT_WRITE
			PROT_NONE
可以通过 位或 操作写入多个权限
@flags		MPA_SHARED					//共享
			MPA_SHARED_VALIDATE
			MAP_PRIVATE					//私有
@fd			文件描述符
@offset		 偏移量					//申请空间的偏移量
返回值		成功:addr的起始地址	失败 MAP_FAILED((void*)-1)	
***********************************************************/
int munmap(void *addr,size_t length);
/***********************************************************
@addr	  	mmp返回的addr的地址
@length		lcd屏的大小,以字节为单位
返回值		成功 0	失败 -1
***********************************************************/
posted @ 2024-05-11 19:14  歪币八卜  阅读(36)  评论(0)    收藏  举报