手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网站运营>建站经验>列表

Linux C 函数参考(文档权限控制)

来源:互联网 作者:west263.com 时间:2008-04-16
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!
..
.gnome
.gnome_private
ErrorLog
Weblog
bin
boot
dev
dosc
dosd
etc
home
lib
lost found
misc
mnt
opt
proc
root
sbin
tmp
usr
var
total = 24
 



chdir(改变当前的工作(目录)
相关函数
getcwd,chroot
表头文档
#include<unistd.h>
定义函数
int chdir(const char * path);
函数说明
chdir()用来将当前的工作目录改变成以参数path所指的目录。
返回值
执行成功则返回0,失败返回-1,errno为错误代码。
范例
#include<unistd.h>
main()
{
chdir(“/tmp”);
printf(“current working directory: %s\n”,getcwd(NULL,NULL));
}
执行
current working directory :/tmp
 



chmod(改变文档的权限)
相关函数
fchmod,stat,open,chown
表头文档
#include<sys/types.h>
#include<sys/stat.h>
定义函数
int chmod(const char * path,mode_t mode);
函数说明
chmod()会依参数mode 权限来更改参数path 指定文档的权限。
参数
mode 有下列数种组合
S_ISUID 04000 文档的(set user-id on execution)位
S_ISGID 02000 文档的(set group-id on execution)位
S_ISVTX 01000 文档的sticky位
S_IRUSR(S_IREAD) 00400 文档任何者具可读取权限
S_IWUSR(S_IWRITE)00200 文档任何者具可写入权限
S_IXUSR(S_IEXEC) 00100 文档任何者具可执行权限
S_IRGRP 00040 用户组具可读取权限
S_IWGRP 00020 用户组具可写入权限
S_IXGRP 00010 用户组具可执行权限
S_IROTH 00004 其他用户具可读取权限
S_IWOTH 00002 其他用户具可写入权限
S_IXOTH 00001 其他用户具可执行权限
只 有该文档的任何者或有效用户识别码为0,才能够修改该文档权限。基于系统安全,假如欲将数据写入一执行文档,而该执行文档具备S_ISUID 或S_ISGID 权限,则这两个位会被清除。假如一目录具备S_ISUID 位权限,表示在此目录下只有该文档的任何者或root能够删除该文档。
返回值
权限改变成功返回0,失败返回-1,错误原因存于errno。
错误代码
EPERM 进程的有效用户识别码和欲修改权限的文档拥有者不同,而且也不具root权限。
EACCESS 参数path所指定的文档无法存取。
EROFS 欲写入权限的文档存在于只读文档系统内。
EFAULT 参数path指针超出可存取内存空间。
EINVAL 参数mode不正确
ENAMETOOLONG 参数path太长
ENOENT 指定的文档不存在
ENOTDIR 参数path路径并非一目录
ENOMEM 核心内存不足
ELOOP 参数path有过多符号连接问题。
EIO I/O 存取错误

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!