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_
相关文档:
1.一次开机,郁闷,发现~目录下有一个长文件名的乱码文件,怎么删都删不掉,目录也不能删。最后想了一个笨方法删掉了
先在该目录下mkdir zz 然后 mv *.* zz OK,然后rm -rf zz文件夹就行了。呵呵 ......
网络配置文件 LINUX 在 安装中 基本的配置 都已经完成了 都以文本方式 保存在/etc目录下
.
网络配置文件:/etc/sysconfig/network
查看命令:
[root@localhost ~]# cat /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=localhost.localdomai ......
对于hci层的编程 是相当复杂的 功能也是强大的,建议学习者 去读bluez-lib中的hci和sdp
这里简要介绍 我在开发公司的项目中的 一个小的基础动作. 该编程的过程基本理清了hci和sdp的衔接和应用.希望对学习者有帮助
说明有不到之处,望大家多多研究,不要局限,每个人有自己的方式,也许你的在逻辑算法上比我的好! ......
Linux下HTTP服务器的搭建
Linux 下安装Tomcat 6的步骤如下。
(1)到apache网站下载Tomcat文件 apache-tomcat-6.0.18.tar.gz。
(2)在/usr目录下建立Tomcat目录。
(3)解压apache-tomcat-6.0.18.tar.gz 文件。
#tar -xvzf apache-tomcat-6.0.18.tar.gz
(4)修改etc/profile 文件,在最后加入如下代码。
exp ......