易截截图软件、单文件、免安装、纯绿色、仅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 Bluetooth编程 (七) SDP协议

Service Discovery Protocol(SDP)提供一种能力,让应用程序有方法发现哪种服务可用以及这种服务的特性。
服务发现协议(SDP或Bluetooth SDP)在蓝牙协议栈中对蓝牙环境中的应用程序有特殊的含意,发现哪个服务是可用的和确定这些可用服务的特征。SDP定义了bluetooth client发现可用bluetooth server服务和它们的特征的方法。 ......

【LINUX编程】Makefile的基本介绍

1.make  &  Makefile 的基本用法:
一个程序由print.c和main.c两个源文件构成,程序的功能是main.c中的main函数调用print.c中定义的print函数。
 
(1)基本的编译链接:
# cc -c main.c                  //编译ma ......

linux下解压命令大全

.tar
解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(注:tar是打包,不是压缩!)
———————————————
.gz
解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName
.tar.gz 和 ......

linux bash中快速移动光标

  bash有两种输入模式vi模式和emacs模式,其中emacs是默认模式,而且操作起来也比vi模式要快捷。可以通过 set -o vi和set -o emacs来转换。
  1.在命令历史中查找
 
 强烈推荐使用 Ctrl+r, 这个键组合是反向增量查找消息历史。很好用。 比如你很久以前输入过某个命令如。 gcc -c -DKKT -
Dnnn 等等,一长串, ......

C 运行时错误 R6002

如下代码编译运行就会提示R6002错误 #include
struct xxx{
  float score;
};
int main()
{
  xxx* p = new xxx;
  scanf( "%f" , &p->score );
  delete p;
} 解决方案很简单 int main()
{
  xxx* p ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号