lseek 与 ioctl】的更多相关文章

/*********************************************************************************** * * Makefile,open,read,write,lseek,poll,ioctl,fasync * * 声明: * 1. 本系列文档是在vim下编辑,请尽量是用vim来阅读,在其它编辑器下可能会 * 不对齐,从而影响阅读. * * * 2015-3-9 阴 深圳 尚观 Var 曾剑锋 *****************…
lseek : 每个打开的文件都记录着当前读写位置,打开文件时读写位置是0,表示文件开头,通常读写多少个字节就会将读写位置往后移多少个字节.但是有一个例外,如果以O_APPEND方式打开,每次写操作都会在文件末尾追加数据,然后将读写位置移到新的文件末尾.lseek和标准I/O库的fseek函数类似,可以移动当前读写位置(或者叫偏移量). #include <sys/types.h>#include <unistd.h> off_t lseek(int fd, off_t offse…
最近老感觉每天不够用,每天7点起来,吃饭完了8点开始看书,不知道是我看书太慢了还是时间过得真的很快,不知不觉中午就到了.而这个时候我才看2章的内容,下午能多看3章内容.一本书也就一天的时候,而我现在还有3本最基本的书要看,还有一些工作还没有做,时间真的太快了.可能是因为我太没有计划没有目的的,有时候没有看完就留到明天看.受不了我自己.现在每天早上起来规定好计划.一定要完成才能睡觉. 今天下午工作计划:<ol> <li> 将接下来的c标准库看完,其中有标准IO库函数,数值字符串转换函…
引子 跟踪perl和python脚本对文件的访问,实际过程中,perl和python解析器在解析完脚本后,直接关闭了 脚本文件,在进程中查询不到是访问文件的脚本文件名称. shell.perl和python脚本执行过程 bash脚本执行过程 脚本内容: #!/usr/bin/env bash echo `date`" hello world!" >> /root/log.txt 使用strace跟踪脚本执行过程,为了节省篇幅,只保留一些关键执行过程: # strace -q…
转载请注明:http://blog.chinaunix.net/uid-20788636-id-4408276.html 1.2 sock_map_fd函数 在用户空间创建了一个socket后,返回值是一个文件描述符,下面分析一下创建socket时怎么和文件描述符联系的.在SYSCALL_DEFINE3(socket, int, family, int, type, int, protocol)最后调用sock_map_fd进行关联,其中返回的retval就是用户空间获取的文件描述符fd,soc…
lseek函数 文件偏移 Linux中可使用系统函数lseek来修改文件偏移量(读写位置) 每个打开的文件都记录着当前读写位置,打开文件时读写位置是0,表示文件开头,通常读写多少个字节就会将读写位置往后移多少个字节.但是有一个例外,如果以O_APPEND方式打开,每次写操作都会在文件末尾追加数据,然后将读写位置移到新的文件末尾.lseek和标准I/O库的fseek函数类似,可以移动当前读写位置(或者叫偏移量). 回忆fseek的作用及常用参数. SEEK_SET.SEEK_CUR.SEEK_EN…
函数说明:每一个已打开的文件都有一个读写位置, 当打开文件时通常其读写位置是指向文件开头, 若是以附加的方式打开文件(如O_APPEND), 则读写位置会指向文件尾. 当read()或write()时, 读写位置会随之增加,lseek()便是用来控制该文件的读写位置. 参数fildes 为已打开的文件描述词, 参数offset 为根据参数whence来移动读写位置的位移数. 注意其每个打开的文件都记录着当前读写位置,打开文件时读写位置是0,表示文件开头,通常读写多少个字节就会将读写位置往后移多少…
概述 内核中驱动文件的操作通常是通过write和read函数进行的,但是很多时候再用户空间进行的操作或许不是内核中公共代码部分提供的功能,此时就需要使用一种个性化的方法进行操作--ioctl系统调用. ioctl系统调用是一种用于设备控制的公共接口,主要分为两种,一种是用户空间使用的ioctl系统调用,函数原型为: int ioctl(int fd,unsigned long cmd,...); 另一种是在内核空间使用的ioctl调用,函数原型为: int (*ioctl)(struct ino…
6.1 fcntl 函数 6.1.1 函数介绍 #include <unistd.h> #include <fcntl.h> int fcntl(int fd, int cmd); int fcntl(int fd, int cmd, long arg); int fcntl(int fd, int cmd, struct flock * lock); 函数说明:fcntl()用来操作文件描述词的一些特性. 函数功能:可以改变已经打开文件的性质 参数说明 @fd:代表欲设置的文件描…
5. 其它I/O系统调用 (1)dup和dup2函数 头文件 #include<unistd.h> 函数 int dup(int oldfd); int dup2(int oldfd, int newfd); 返回值 若成功返回新文件描述符,出错返回-1 功能 文件描述符的复制(将oldfd复制给newfd) 参数 old:原先的文件描述符 newfd: 新文件描述符 备注 (1)由dup返回的新文件描述符一定是当前可用文件描述符中最小数值. (2)用dup2则可以用newfd参数指定新描述符…