本文讲解文件的偏移(lseek()函数)、文件状态的获取(fstat()函数)、文件空间的映射(mmap()函数)、文件的属性(fcntl()函数)1.文件偏移量lseek()函数 文件偏移量是指文件当前的操作位置,相对文件开始位置的偏移 写入数据成功,文件偏移量要向后移动写入数据的大小 读出数据成功,..
分类:
系统相关 时间:
2015-03-15 19:57:17
阅读次数:
213
一. Makefile大致写法: | 二. 获取进程task_struct的方法: | 三. open 大致写法: | 四. read 大致写法: | 五. write 大致写法: ...
分类:
其他好文 时间:
2015-03-10 22:51:14
阅读次数:
234
2015.3.3星期二 阴天IPC:进程间通信pipe:无名管道:只能用于具有亲缘关系的进程之间fifo: 有名管道:可以使互不相关的两个进程互相通信,有名管道可以通过路径名来指出,并且在文件系统中可见,通过文件io操作,不支持lseek()管道创建:无名:调用pipe();有名管道:1.mkfif...
分类:
其他好文 时间:
2015-03-04 00:53:38
阅读次数:
181
之前有个要把打开的文件清空,然后重新写入的需求,但是使用 ftruncate(fd, 0)后,并没有达到效果,反而文件头部有了'\0',长度比预想的大了。究其原因是没有使用 lseek 重置文件偏移量,是我太天真了,以为清空文件就会从头开始写入。
------------------------------------- 我是解释分割线 -----------------------------...
分类:
系统相关 时间:
2015-02-06 14:59:12
阅读次数:
238
上一篇文章给自己总结了一下linux环境下的大部分的I/O函数,还有一类函数就是为当前操作的文件设置文件偏移量。同样分为两种函数,一种是linux提供的一个系统调用函数lseek();还有一种就是标准C库函数。先介绍linux下面的的lseek()函数: off_t lseek(int fd,of....
分类:
其他好文 时间:
2015-01-30 22:15:38
阅读次数:
131
原题:如果使用追加标志打开一个文件以便读、写,能否仍用 lseek 在任一为止开始读?能否用 lseek 更新文件中任一部分的数据?
验证程序如下:
#include
#include
#include
#include
#include
#define BUF_SIZ 32
int main()
{
int fd;
int res;
off_t offs...
分类:
其他好文 时间:
2015-01-09 17:24:09
阅读次数:
269
每个打开的文件都有一个与其相关连的“当前文件偏移量”( current file offset )。它通常是一个非负整数,用以度量从文件开始处计算的字节数。通常,读、写操作都从当前文件偏移量开始,并使偏移量增加所读写的字节数。按系统默认情况,当打开一个文件时,除非指定 O_APPEND 选项,否则该偏移量设置为 0。
lseek调用仅将当前的文件偏移量记录在内核中,它并不引起任何的 I/O 操作...
分类:
系统相关 时间:
2015-01-05 16:39:34
阅读次数:
432
在unix系统中,一切皆文件。系统把文件夹、字符设备、块设备、套接字都当做文件来对待。对于文件的操作,使用I/O函数,这里所说的I/O函数是指系统调用。大多数文件的I/O要用到这5个函数:open、read、write、lseek、close。这5个函数均是不带缓冲的I/O。打开文件在内核中的表示对...
分类:
其他好文 时间:
2014-12-19 10:00:02
阅读次数:
176
open(),read(),write(),close()可以应用于管道,FIFO,socket,或者终端等所有文件类型执行IO操作。lseek()并不适用于所有类型的文件。不允许将lseek()应用于管道,FIFO,socket或者终端,只要合情合理,也可以将lseek应用于设备。例如在磁盘或磁带...
分类:
系统相关 时间:
2014-12-08 17:12:52
阅读次数:
205
1. open和create函数在fcntl.h中,close、lseek、read、write函数在unistd.h中2. create函数以只读方式打开文件,create(pathname,mode)相当于open(pathname,O_RDONLY|O_CREATE|O_TRUNC,mode)...
分类:
其他好文 时间:
2014-12-03 17:02:25
阅读次数:
182