系统调用-创建:
一、int creat(const char * filename, mode_t mode)
filename:要创建的文件名(包含路径,缺省为当前路径)
mode:创建模式
常见创建模式:
S_IRUSR 可读 4
S_IWUSR 可写 2
S_IXUSR 可执行 1
S_IRWXU 可读、写、执行 7
无任何权限 0
创建文件代码:
二、系统调用-打开
int open(const char * pathname, int flags)
int open(const char * pathname, int flags, mode_t mode)
pathname:要打开的文件名(包含路径,缺省为当前路径)
flag:打开标志
常见的打开标志:
O_RDONLY 只读方式打开
O_WRONLY 只写方式打开
O_RDWR 读写方式打开
O_APPEND 追加方式打开
O_CREAT 创建一个文件(当打开一个文件时,没有会创建)
O_NOBLOCK 非阻塞方式打开
如果是用O_CREAT就用三个参数的,其他的用俩两个参数
三、文件的关闭
int close(int fd)
四、系统调用-读
int read(int fd, const void * buf, size_t length)
参数:
fd:所指定的文件中读取
length:把这么多的字节读到buf所指向的缓冲区
返回值为实际读取的字节数
五、系统调用-写
int write(int fd, const void * buf, size_t length)
功能:把length个字节从buf指向的缓冲区中写到文件描述符fd所指向的文件中,返回值为实际写入的字节数
六、系统调用-定位
int lseek(int fd, offset_t offset, int whence)
whence可使用一下值
SEEK_SET:相对文件开头
SEEK_CUR:相对文件读写指针的当前位置
SEEK_END:相对文件末尾
offset可取负值,表示向前移动
怎么计算文件长度?
七、系统调用-访问判断
int access(const char * pathname, int mode)
pathname:文件名称
mode:要判断的访问权限
返回值:当我们测试成功时,函数返回0,否则如果一个条件不符时,返回-1
一、int creat(const char * filename, mode_t mode)
filename:要创建的文件名(包含路径,缺省为当前路径)
mode:创建模式
常见创建模式:
S_IRUSR 可读 4
S_IWUSR 可写 2
S_IXUSR 可执行 1
S_IRWXU 可读、写、执行 7
无任何权限 0
创建文件代码:
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
void create_file(char * filename){
if(creat(filename, 0775) < 0){
printf("创建文件失败!\n");
exit(EXIT_FAILURE);
} else {
printf("创建文件成功!\n");
}
}
int main(int argc, char * argv[]){
int i;
if(argc < 2){
perror("你没有输入文件名称!");
exit(EXIT_FAILURE);
}
for(i = 1; i < argc; i++){
create_file(argv[i]);
}
exit(EXIT_SUCCESS);
}
二、系统调用-打开
int open(const char * pathname, int flags)
int open(const char * pathname, int flags, mode_t mode)
pathname:要打开的文件名(包含路径,缺省为当前路径)
flag:打开标志
常见的打开标志:
O_RDONLY 只读方式打开
O_WRONLY 只写方式打开
O_RDWR 读写方式打开
O_APPEND 追加方式打开
O_CREAT 创建一个文件(当打开一个文件时,没有会创建)
O_NOBLOCK 非阻塞方式打开
如果是用O_CREAT就用三个参数的,其他的用俩两个参数
三、文件的关闭
int close(int fd)
四、系统调用-读
int read(int fd, const void * buf, size_t length)
参数:
fd:所指定的文件中读取
length:把这么多的字节读到buf所指向的缓冲区
返回值为实际读取的字节数
五、系统调用-写
int write(int fd, const void * buf, size_t length)
功能:把length个字节从buf指向的缓冲区中写到文件描述符fd所指向的文件中,返回值为实际写入的字节数
六、系统调用-定位
int lseek(int fd, offset_t offset, int whence)
whence可使用一下值
SEEK_SET:相对文件开头
SEEK_CUR:相对文件读写指针的当前位置
SEEK_END:相对文件末尾
offset可取负值,表示向前移动
怎么计算文件长度?
七、系统调用-访问判断
int access(const char * pathname, int mode)
pathname:文件名称
mode:要判断的访问权限
返回值:当我们测试成功时,函数返回0,否则如果一个条件不符时,返回-1