linux学习之文件编程
2014-05-20 22:08
127 查看
一、linux实现文件操作有两种方式:
1.系统调用方法;
2.库函数实现。
下面详细介绍两种方式。
(1)系统调用
int
open(const char *pathname, int flags)
int open(const char*pathname, int flags, mode_t mode)
入参:pathname:路径
flags:打开方式(O_RDONLY,O_WRONLY,O_RDWR),另外可以附加选项(O_CREAT)
返回值:0:正确; -1:错误。
off_tlseek(int fildes, off_t offset, int whence)
入参:fildes:文件描述符;
offset:偏移量;
whence:设定从文件哪里开始偏移,通常可取如下(SEEK_END:文件尾, SEEK_SET:文件开头,SEEK_CUR:当前文件)
返回值:成功时返回目前读写文职,即距离文件开头多少字节。错误时返回-1.
size_t
read(int fd, void *buf, size_t count)
size_t
write(int fd, void *buf ,size_t count)
入参:fd:文件描述符;
buf:存入或读取数据缓冲区;
count:大小
返回值:读取或写数据大,错误时返回-1.
举例:实现文件复制功能
1.系统调用方法;
2.库函数实现。
下面详细介绍两种方式。
(1)系统调用
int
open(const char *pathname, int flags)
int open(const char*pathname, int flags, mode_t mode)
入参:pathname:路径
flags:打开方式(O_RDONLY,O_WRONLY,O_RDWR),另外可以附加选项(O_CREAT)
返回值:0:正确; -1:错误。
off_tlseek(int fildes, off_t offset, int whence)
入参:fildes:文件描述符;
offset:偏移量;
whence:设定从文件哪里开始偏移,通常可取如下(SEEK_END:文件尾, SEEK_SET:文件开头,SEEK_CUR:当前文件)
返回值:成功时返回目前读写文职,即距离文件开头多少字节。错误时返回-1.
size_t
read(int fd, void *buf, size_t count)
size_t
write(int fd, void *buf ,size_t count)
入参:fd:文件描述符;
buf:存入或读取数据缓冲区;
count:大小
返回值:读取或写数据大,错误时返回-1.
举例:实现文件复制功能
<pre class="objc" name="code">int main(int argc,char **argv) { int from_fd,to_fd; int ret =1; long file_len=0; char buffer[BUFFER_SIZE]; char *ptr; /*判断入参*/ if(argc!=3) { printf("Usage:%s fromfile tofile\n",argv[0]); exit(1); } /* 打开源文件 */ if((from_fd=fopen(argv[1],"rb"))==-1) { printf("Open %s Error\n",argv[1]); exit(1); } /* 创建目的文件 */ if((to_fd=fopen(argv[2],"wb"))==-1) { printf("Open %s Error\n",argv[2]); exit(1); } /*测得文件大小*/ file_len=lseek(from_fd,0L,SEEK_END); fseek(from_fd,0L,SEEK_SET); printf("from file size is=%d\n",file_len); /*进行文件拷贝*/ while(ret) { ret=read(from_fd,buffer,BUFFER_SIZE);
if(ret == -1) { printf("read erro");
exit(1);
}
write(to_fd,buffer,ret);
file_len-=ret;
bzero(buffer,BUFFER_SIZE);
} fclose(from_fd); fclose(to_fd); exit(0); }
相关文章推荐
- UNIX/LINUX编程学习之文件锁、记录锁
- LINUX C系统编程学习笔记-----------文件编程
- Linux学习记录--文件管理相关系统编程
- Linux学习之库函数方式文件编程
- 嵌入式Linux学习笔记第三天(文件编程)
- LINUX学习笔记2——文件编程
- Linux 系统编程学习-文件I/O操作
- LInux 编程基础学习笔记 持续ing 文件读写
- Linux学习记录--文件管理相关系统编程
- Linux应用程序学习之文件编程
- 文件编程---那些年我们一起学习linux程序设计
- Linux 系统编程学习-文件操作
- 文件I/O编程学习笔记三(linux 时间编程)
- linux/unix学习之文件编程一
- UNIX/LINUX编程学习之文件I/O
- Linux编程学习笔记--proc文件系统
- Linux/Unix C编程之系统函数文件读写 学习笔记
- linux编程学习笔记(九) 获取文件状态与文件映射mmap
- linux/unix学习之文件编程二
- linux 系统编程-学习笔记2-文件I/O-open-read