access(判断是否具备存取文档的权限) | |
|
相关函数 |
stat,open,chmod,chown,setuid,setgid |
|
表头文档 |
#include<unistd.h> |
|
定义函数 |
int access(const char * pathname,int mode); |
|
函数说明 |
access()会检查是否能够读/写某一已存在的文档。参数mode有几种情况组合,
R_OK,W_OK,X_OK
和F_OK。R_OK,W_OK和X_OK用来检查文档是否具备读取、写入和执行的权限。F_OK则是用来判断该文档是否存在。由于access()只作
权限的核查,并不理会文档形态或文档内容,因此,假如一目录表示为“可写入”,表示能够在该目录中建立新文档等操作,而非意味此目录能够被当做文档处理。
例如,您会发现DOS的文档都具备“可执行”权限,但用execve()执行时则会失败。 |
|
返回值 |
若任何欲查核的权限都通过了检查则返回0值,表示成功,只要有一权限被禁止则返回-1。 |
|
错误代码 |
EACCESS 参数pathname 所指定的文档不符合所需要测试的权限。 EROFS 欲测试写入权限的文档存在于只读文档系统内。 EFAULT 参数pathname指针超出可存取内存空间。 EINVAL 参数mode 不正确。 ENAMETOOLONG 参数pathname太长。 ENOTDIR 参数pathname为一目录。 ENOMEM 核心内存不足 ELOOP 参数pathname有过多符号连接问题。 EIO I/O 存取错误。 |
|
附加说明 |
使用access()作用户认证方面的判断要特别小心,例如在access()后再做open()的空文档可能会造成系统安全上的问题。 |
|
范例 |
/* 判断是否允许读取/etc/passwd */ #include<unistd.h> int main() { if (access(“/etc/passwd”,R_OK) = =0) printf(“/etc/passwd can be read\n”); } |
|
执行 |
/etc/passwd can be read |
|
| |
|
|
alphasort(依字母顺序排序目录结构) |
|
相关函数 |
scandir,qsort |
|
表头文档 |
#include<dirent.h> |
|
定义函数 |
int alphasort(const struct dirent **a,const struct dirent **b); |
|
函数说明 |
alphasort()为scandir()最后调用qsort()函数时传给qsort()作为判断的函数,周详说明请参考scandir()及qsort()。 |
|
返回值 |
参考qsort()。 |
|
范例 |
/* 读取/目录下任何的目录结构,并依字母顺序排列*/ main() { struct dirent **namelist; int i,total; total = scandir(“/”,&namelist ,0,alphasort); if(total <0) perror(“scandir”); else{ for(i=0;i<total;i ) printf(“%s\n”,namelist[i]->d_name); printf(“total = %d\n”,total); } } |
|
执行
文章整理:西部数码--专业提供域名注册、虚拟主机服务 相关文章
热点关注
IDC资讯
虚拟主机
域名注册
托管租用
vps主机
智能建站
网站运营 建站经验 策划盈利 搜索优化 网站推广 免费资源 网站联盟 联盟新闻 联盟介绍 联盟点评 网赚技巧 行业资讯 业界动态 搜索引擎 网络游戏 门户动态 电子商务 广告传媒 网络编程 Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它 服务器技术 Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护 软件技巧 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷 Internet Explorer 网页制作 FrontPages Dreamweaver Javascript css photoshop fireworks Flash 程序设计 Java技术 C/C++ VB delphi 网络知识 网络协议 网络安全 网络管理 组网方案 Cisco技术 操作系统 Win2000 WinXP Win2003 Mac OS Linux FreeBSD |
Linux C 函数参考(文档权限控制)
来源:互联网
作者:west263.com
时间:2008-04-16
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!
这两天在学如何写个linux下的shell才明白原来dos下的command.COM也是个shell这当然要用到c的很多库函数



