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 | 目录权限 |