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

LINUX下文件操作函数

 
Linux的文件操作API涉及到创建、打开、读写和关闭文件。
1.linux API
  创建
int creat(const char *filename, mode_t mode);
  参数mode指定新建文件的存取权限,它同umask一起决定文件的最终权限(mode&umask),其中umask代表了文件在创建时需要去掉的一些存取权限。umask可通过系统调用umask()来改变:
int umask(int newmask);
打开
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三个标志只能使用任意的一个。
     mode可以是以下情况的组合:
标志
含义
S_IRUSR
用户可以读
S_IWUSR
用户可以写
S_IXUSR
用户可以执行
S_IRWXU
用户可以读、写、执行
S_IRGRP
组可以读
S_IWGRP
组可以写
S_IXGRP
组可以执行
S_IRWXG
组可以读写执行
S_IROTH
其他人可以读
S_IWOTH
其他人可以写
S_IXOTH
其他人可以执行
S_IRWXO
其他人可以读、写、执行
S_ISUID
设置用户执行ID
S_ISGID
设置组的执行ID
  除了可以通过上述宏进行“或”逻辑产生标志以外,我们也可以自己用数字来表示,Linux总共用5个数字来表示文件的各种权限:第一位表示设置用户ID;第二位表示设置组ID;第三位表示用户自己的权限位;第四位表示组的权限;最后一位表示其他人的权限。每个数字可以取1(执行权限)、2(写权限)、4(读权限)、0(无)或者是这些值的和。例如,要创建一个用户可读、可写、可执行,但是组没有权限,其他人可以读、可以执行的文件,并设置用户ID位。那么,我们应该使用的模式是1(设置用户ID)、0(不设置组ID)、7(1+2+4,读、写、执行)、0(没有权限)、5(1+4,读、执行)即10705:
open("test", O_CREAT, 10705);
  上述语句等价于:
open("test", O_CREAT, S_IRWXU | S_IROTH | S_


相关文档:

实战Linux Bluetooth编程 (七) SDP协议

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

解决linux下不能删除乱码文件的笨方法

 1.一次开机,郁闷,发现~目录下有一个长文件名的乱码文件,怎么删都删不掉,目录也不能删。最后想了一个笨方法删掉了
先在该目录下mkdir zz  然后 mv *.* zz    OK,然后rm -rf zz文件夹就行了。呵呵 ......

linux网络配置&管理基础 [转载]

 
网络配置文件    LINUX 在 安装中 基本的配置 都已经完成了    都以文本方式 保存在/etc目录下
.
网络配置文件:/etc/sysconfig/network
查看命令:

[root@localhost ~]# cat /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=localhost.localdomai ......

linux下串口编程

Linux 串口编程的一些问题解决
Linux下串口编程的文章网上是满天飞,但大都是出自一篇文章,而且写的都是些基本的操作,像控制RTS/CTS等串口引脚状态,接收发送二进制数据等,都没有很好的说明,我在使用中遇到了些问题,写出来,希望能对大家有所帮助,少走弯路,呵呵!
我使用的操作系统是Redhat9,gcc版本是3.2.2
......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号