文件编程:系统调用方式
来源:互联网 发布:手机不让安装软件 编辑:程序博客网 时间:2024/05/19 13:55
1、创建文件
int creat(const char *filename, mode_t mode)
filename:要创建的文件名(包含路径,缺省为当前路径)
mode:创建模式
常见创建模式:
S_IRUSR
S_IWUSR
S_IXUSR
S_IRWXU
除了可以使用上述宏以外,还可以直接只用数字来表示文件的访问权限:
可执行->1
可写->2
可读->4
上述值的和,如可写可读->6
无任何权限->0
实例分析:file_creat.c
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
void
}
int main(int argc,char *argv[]){
}
在Linux系统中,所有打开的文件都对应一个文件描述符。文件描述符的本质是一个非负整数。当打开一个文件时,该整数由系统来分配。
2、打开文件
int open(const char *pathname, int flags)
int open (const char *pathname, int falgs, mode_t mode)
pathname:要打开的文件名(包含路径,缺省为当前路径)
flags:打开标志
常见的打开标志:
O_RDONLY
O_WRONLY
O_RDWR
O_APPEND
O_CREAT
O_NOBLOCK
如果使用了O_CREAT标志,则使用的函数是:
int open (const char *pathname, int falgs, mode_t mode)
这时需要指定mode来表示文件的访问权限。
实例分析:file_open.c
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int main(int argc ,char *argv[]){
}
3、关闭文件
当我们操作完文件以后,需要关闭文件:
int close(fd)
fd:文件描述符。
4、读文件
int read(int fd, const void *buf, size_t length)
从文件描述符fd所指定的文件中读取length个字节到buf所指向的缓冲区中,返回值为实际读取的字节数。
5、写文件
int write(int fd, const void *buf, size_t length)
把length个字节从buf指向的缓冲区中写到文件描述符fd所指向的文件中,返回值为实际写入的字节数。
6、定位文件
int lseek(int fd, offset_t offset, int whence)
将文件读写指针相对whence移动offset个字节。操作成功时,返回文件指针相对于文件头的位置。
whence可使用下述值:
SEEK_SET:相对文件开头
SEEK_CUR:相对文件读写指正的当前位置
SEEK_END:相对文件末尾
offfset可取负值,表示向前移动。例如下述调用可将文件指针相对当前位置向前移动5个字节:
lseek(fd, -5 , SEEK_CUR)
由于lseek函数的返回值为文件指针相对于文件头的位置,因此下面调用的返回值就是文件的长度:
lseek(fd, 0, SEEK_END)
7、访问判断
有时我们需要判断文件是否可以经行某种操作(读、写等),这时可以使用access函数:
int access(const char *pathname, int mode)
pathname:文件名称
mode:要判断的访问权限。可以取以下值或者是他们的组合。R_OK:文件可读,W_OK:文件可写,X_OK:文件可执行,F_OK:文件存在。
返回值:当我们测试成功时,函数返回0;否则如果一个条件不符合时,返回-1。
例:
#include<unistd.h>
Int main(){
}
综合实例:file_cp.c
int main(int argc,char **argv)
{
}
原文:http://blog.sina.com.cn/s/blog_73d4d5fa0100po05.html
- 文件编程:系统调用方式
- 文件编程:系统调用方式
- 系统调用方式文件编程
- 系统调用方式文件编程
- 第二天 文件编程 系统调用方式
- 文件编程之系统调用方式
- 03-系统调用方式文件编程
- Linux_3.3_系统调用方式文件编程
- 2-8 系统调用方式的文件编程
- LS8-linux系统调用方式文件编程之学习笔记
- 系统调用方式访问文件
- 系统调用方式访问文件
- 文件编程总结(系统调用)
- 文件编程之系统调用
- LINUX文件编程-系统调用
- linux文件编程-系统调用
- Linux文件编程--系统调用
- 【Linux系统调用】文件编程
- Supervisord进程管理工具的安装使用
- 〈数据结构〉课程设计综合题目4
- Keepalived + LVS(DR) 高可用集群
- 如何开启Tornado的调试模式
- 字符的逆序输出
- 文件编程:系统调用方式
- IOS中CALayer的使用
- Display Microsoft Terminal Services ActiveX Control (or Microsoft RDP Client Control
- hibernate关联映射之多对一单向关联
- 如何使用安卓4.4的SD卡?
- 开始用Tornado:从Hello World开始
- SQL_Server_2008安装教程_图解
- TinyHttp源码解读
- tomcat内存溢出