在linux中使用open函数对文件进行操作后如何读取文件中的内容 lseek fcntl ioctl

来源:互联网 发布:淘宝昵称为什么改不了 编辑:程序博客网 时间:2024/05/17 05:51
程序如下:

其中 文件abc  是事先建立的新文件,否则可能不成功

第二点:
如果没有write函数,那么读取到的文件abc的大小为零,要特别注意。



如果使用  vi 打开文件 abc 显示的是一连串的乱码

如果使用  cat 命令  可以看到只有a一个字母

正确的打开方式 是使用  od 命令

 tcx  中的x表示 16 进制 可用 d改成10 进制

lseek 可以拓展一个文件,一定要有一次写操作write

lseek的第二个作用是可以查看文件的大小       打开一个文件  将lseek 移动到文件末尾,然后看函数返回值的大小就是文件的大小


lseek最重要的作用就是 打开一个文件,然后移动读写指针的位置

lseek是fseek的底层函数!!!


fcntl是用来获取和设置文件的访问控制属性

其函数定义如下:


其用法如下:


其中,flag是一个位标识符,F_GETFL是获取文件的标识符,紧接着的 |  是用来获取非阻塞设置的,F_SETFL是用来设置新的标识符的。

总之,fseek是用来改变一个  已经打开的文件的描述符的属性。(一般来说,文件的描述符的属性在最初打开文件(open函数)中设定的,设定后,如需要改变,则调用fcntl函数)

所以说一般设置文件是非阻塞的两种办法:一打开文件时设置,而是打开文件后用fcntl设置



ioctl 是一个杂项函数



例子:


其中,isatty函数时用来判断是否是一个终端文件。


这段代码的意义时获取当前终端窗口的大小,当你调整窗口的大小时,再次运行,结果输出的行和列发生了变化。

阅读全文
0 0
原创粉丝点击