文件编程

Linux 系统调用函数介绍

creat

int creat(const char *filename, mode_t mode)

头文件#include<sys/types.h> #include<sys/stat.h>#include <fcntl.h>
功能创建一个文件
返回值成功:返回只写打开的文件描述符 出错:返回-1.
参数属性
const chat *filename要创建的的文件名(包含路径)
mode_t mode创建模式(权限)
S_IRUSR/4可读
S_IWUSR/2可写
S_IXUSR/1可执行
S-IRWXU/7可读、写、执行

open

int open(const char *pathname, int flags)
int open(const char *pathname, int flags,mode_t mode)

头文件#include<sys/types.h> #include<sys/stat.h>#include <fcntl.h>
功能打开一个文件
返回值成功:返回文件描述符 失败: -1
参数属性
const chat *pathname要打开的的文件名(包含路径)
int falg打开标志/可叠加
O_RDONLY只读方式打开
O_WRONLY只写方式打开
O_RDWR读写方式打开
O_APPEND追加式打开
O_CREAT若无则创建一个文件
O_NOBLOCK非阻塞方式打开
mode_t mode创建的文件权限/若有 O_CREAT 有此参数
0xxx表示权限

close

int close( int fd)
当一个进程结束 自动调用 close 关闭所有摁键描述符

头文件#include <unistd.h>
功能关闭一个文件
返回值成功:返回0,失败:返回-1并设置errno
参数属性
int fd文件描述符号

read

int read( int fd, const void *buf, size_t length)

头文件#include <unistd.h>
功能读取一个文件
返回值成功: 返回读取的字节数 失败:返回-1并设置errno,调read之前已到达文件末尾:返回0
参数属性
int fd文件描述符号
const void *buf存放的数据的数组名
size_t读取的字节数

write

int write( int fd, const void *buf, size_t length)

头文件#include <unistd.h>
功能写入一个文件
返回值成功: 返回写入的字节数 失败:返回-1并设置errno
参数属性
int fd文件描述符号
const void *buf存放源数据的数组名
size_t写入的字节数

lseek

int lseek( int fd, offset_t offset, int whence)

头文件#include <sys/types.h> #include <unistd.h>
功能定位文件指针
返回值成功: 当前文件偏移量(cfo,即 离文件头的偏移量) 失败:返回-1并设置errno
参数属性
int fd文件描述符号
offset_t offset相对whence移动的字节数
whence偏移定位点
SEEK_SET相对文件开头
SEEK_CUR相对文件读写指针的当前位置
SEEK_END相对文件末尾

access

int lseek( const char*pathname, int mode)

头文件#include <sys/types.h> #include <unistd.h>
功能判断文件权限
返回值判断符合: 返回 0 判断不符合: 返回-1
参数属性
pathname文件名称
*mode判断模式/可叠加
F_OK文件存在
R_OK文件可读
W_OK文件可写
X_OK文件可执行

C 语言库 调用函数介绍

fopen

FILE *fopen( const char *filename, const char *mode)

头文件#include <stdio.h>
功能打开文件
返回值成功: 返回文件指针 失败: 返回NULL
参数属性
filename文件名称
*mode打开模式(b代表二进制文件),不写代表文本文件
r,rb只读方式打开
w,wb只写方式打开,如果文件不存在,则创建
a,ab追加方式放开,若果文件不存在,则创建
r+,r+b,rb+读写方式打开
w+,w+b,wb+读写方式打开,如果文件不存在,则创建
a+,a+b,ab+读写追加方式打开,如果文件不存在,则创建

fread

size_t fread( void *ptr,size_t size ,size_t n,FILE *stream)

头文件#include <stdio.h>
功能读取文件
返回值成功: 返回实际读取文件的字节数 失败: 返回-1 调用read前文件已到末尾:返回 0
参数属性
void *ptr数据存放数组
size_t size每个字段 字节
size_t n读取字段
FILE *stream文件名

fwrite

size_t fwrite( const void *ptr,size_t size ,size_t n,FILE *stream)

头文件#include <stdio.h>
功能写入文件
返回值成功: 返回实际写入文件的字节数 失败: 返回-1
参数属性
void *ptr源数据数组
size_t size每个字段 字节
size_t n读取字段
FILE *stream文件名

fgetc

int fgetc(FILE *stream)
是返回所读取的一个字节。如果读到文件末尾或者读取出错时返回EOF。

头文件#include <stdio.h>
功能读取文件一个字符,读取一个字节后,光标位置后移一个字节
返回值成功: 返回读取字符的ASCII码 失败或读取到末尾: 返回EOF(-1)
参数属性
FILE *stream文件名

fputc

int fputc(int c,FILE *stream)

头文件#include <stdio.h>
功能写入一个字符到文件,写入后,光标位置后移一个字节
返回值成功: 返回输入字符的ASCII码 失败: 返回EOF(-1)
参数属性
int c写入字符的ASCII码,若为字符型,会自动转换成ASCII码
FILE *stream文件名

fscanf

fscanf(FILE *stream,char *format[,argument..])

头文件#include<stdlib.h> #include <stdio.h>
功能从一个流中进行格式化输入
返回值
参数属性
FILE *stream文件名
char *format[,argument写入字符
代码示例fscanf(stream,"%d",&i)

fprintf

fprintf(FILE *stream,char *format[,argument..])

头文件#include<stdlib.h> #include <stdio.h>
功能格式化输出到一个流中
返回值
参数属性
FILE *stream文件名
char *format[,argument写入字符
代码示例fprintf(stream,"%d\n",i)

fseek

fseek(FILE *stream,long offset,int whence)

头文件#include<stdlib.h> #include <stdio.h>
功能定位文件指针
返回值成功 :返回0 失败:(比如offset超过文件自身大小),则不改变stream指向的位置,返回一个非0值
参数属性
FILE *stream文件名
long offset相对whence移动的字节数
whence偏移定位点
SEEK_SET相对文件开头
SEEK_CUR相对文件读写指针的当前位置
SEEK_END相对文件末尾

getcwd

char* getcwd(char *buffer, size_t size)

头文件#include<stdlib.h> #include <stdio.h>
功能获得当前路径,并将路径复制到数组 buffer中
返回值成功 :返回当前工作目录 失败:(buffer容量不足),返回 -1
参数属性
char* buffe存放路径数组
size_t size数组大小

mkdir

int mkdi(char *dir ,int mode)

头文件#include<sys/stat.h>
功能创建一个新目录
返回值成功 :返回0: 失败:返回 -1
参数属性
dir目录名
mode目录权限
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值