易截截图软件、单文件、免安装、纯绿色、仅160KB

Linux下的C编程实战之文件系统编程

1.Linux文件系统
  Linux

持多种文件系统,如ext、ext2、minix、iso9660、msdos、fat、vfat、nfs等。在这些具体文件系统的上层,Linux提供
了虚拟文件系统(VFS)来统一它们的行为,虚拟文件系统为不同的文件系统与内核的通信提供了一致的接口。下图给出了Linux中文件系统的关系:
  在Linux平台下对文件编程可以使用两类函数:(1)Linux操作系统
文件API;(2)C语言I/O库函数。 前者依赖于Linux系统调用,后者实际上与操作系统是独立的,因为在任何操作系统下,使用C语言I/O库函数操作文件的方法都是相同的。本章将对这两种方法进行实例讲解。
  2.Linux文件API
  Linux的文件操作API涉及到创建、打开、读写和关闭文件。
  创建
int creat(const char *filename, mode_t mode);
  参数mode指定新建文件的存取权限,它同umask一起决定文件的最终权限(mode&umask),其中umask代表了文件在创建时需要去掉的一些存取权限。umask可通过系统调用umask()来改变:
int umask(int newmask);
  该调用将umask设置为newmask,然后返回旧的umask,它只影响读、写和执行权限。
  打开
int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);
  open函数有两个形式,其中pathname是我们要打开的文件名(包含路径名称,缺省是认为在当前路径下面),flags可以去下面的一个值或者是几个值的组合:
标志
含义
O_RDONLY
以只读的方式打开文件
O_WRONLY
以只写的方式打开文件
O_RDWR
以读写的方式打开文件
O_APPEND
以追加的方式打开文件
O_CREAT
创建一个文件
O_EXEC
如果使用了O_CREAT而且文件已经存在,就会发生一个错误
O_NOBLOCK
以非阻塞的方式打开一个文件
O_TRUNC
如果文件已经存在,则删除文件的内容
 
 
  O_RDONLY、O_WRONLY、O_RDWR三个标志只能使用任意的一个。
  如果使用了O_CREATE标志,则使用的函数是int open(const char *pathname,int flags,mode_t mode); 这个时候我们还要指定mode标志,用来表示文件的访问权限。mode可以是以下情况的组合:
标志
含义
S_IRUSR
用户可以读
S_IWUSR
用户可以写
S_IXUSR
用户可以执行
S_IRWXU
用户可以读、写、执行
S_IRGRP
组可以读
S_IWGRP
组可以写
S_IXGRP
组可以执行
S_IRWXG
组可以读写执行
S_IROTH
其他人可以读
S_IWOTH
其他人可以写
S_IXOTH


相关文档:

Linux设备模型之input子系统详解

一:前言
最近在研究android的sensor driver,主要是E-compass,其中用到了Linux input子系统.在网上也看了很多这方面的资料,感觉还是这篇分析的比较细致透彻,因此转载一下以便自己学习,同时和大家分享!
(这篇博客主要是以键盘驱动为例的,不过讲解的是Linux Input Subsystem,可以仔细的研究一下!)
键盘驱动将检 ......

Linux服务器架设指南—前言

前    言
Linux是一种开放源代码的自由操作系统。自它诞生以来,在全世界Linux爱好者的共同努力下,其性能不断完善,具有稳定、安全、网络负载力强、占用硬件资源少等技术特点,得到了迅速推广和应用。它已发展成为当今世界的主流操作系统之一。
除了作为桌面系统使用外,Linux在服务器领域更是得到了广泛 ......

Eclipse+Qt4配置步骤(Linux版)

以下以Fedora12发行版为例。
基本环境:
Fedora的完整安装盘已经包括了Qt开发环境,安装时注意选择安装Eclipse、C/C++开发和Qt开发的组件即可。如果是想添加功能,可以从Fedora的“添加/删除软件”程序里自行从软件库下载相关软件。
Qt Eclipse Integration for C++的安装:
参考:http://qt.nokia.com/devel ......

MySQL安装与应用【Linux下的安装与配置】

Linux下的安装与配置
如果所安装的Linux系统没有内置的MySQL,笔者建议在Linux中使用RPM包来安装MySQL,同样这也是MySQL官方提供的建议。笔者接触最多的Linux系统是Radhat的“近亲”:CentOS,由于CentOS较新的版本都内置了MySQL,因此在安装系统时就将MySQL安装并注册为系统服务,省去了不少工作量,此处也就不 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号