C/C++ ÅжÏ·¾¶ÎªÎļþ
/***************************************************
* º¯Êý˵Ã÷: Åжϵ±Ç°path²ÎÊýÊÇ·ñΪһ¸ö¿É¶ÁµÄÎļþ
* º¯Êý·µ»Ø: 0 - Îļþ¿Ì¶È 1 - ȨÏ޾ܾø -1 -º¯Êý´íÎó
* ²Î Êý : path Îļþ·¾¶.
***************************************************/
int isReadFile(const char *path)
{
struct stat info;
int euid,egid;
if ( 0!= stat(path,&info) )
{
return -1;
}
//if it is a file
if( S_IFREG != (info.st_mode & S_IFMT ) )
{
return 1;
}
euid=geteuid();//returns the real user ID of the
current process
egid=getegid();//returns the effective user ID of the
current process
//if effective user is root
if(euid==0)
{
if(info.st_mode & S_IRUSR || info.st_mode &
S_IRGRP ||info.st_mode & S_IROTH)
{
return 0;
}
Ïà¹ØÎĵµ£º
ÕâÆªÎÄÕÂÖмǼ±¾È˶ÔһЩC/C++»ù´¡¸ÅÄîµÄÀí½â£¬Ö÷Òª°üÀ¨ÒÔϼ¸¸ö·½ÃæÄÚÈÝ£º
1¡¢ÀàÐÍת»»
1¡¢ÀàÐÍת»»
ÔÚCºÍC++µÄÒ»¸ö±í´ïʽÖÐÍùÍù»á°üº¬¼¸ÖÖ²»Í¬µÄÊý¾ÝÀàÐÍ£¬ÒªÈÃÕâЩÊý¾ÝÀàÐÍÖ®¼ä¿ÉÒÔ½øÐÐÔËË㣬±ØÐëÈÃËûÃÇÖ®ÖеÄһЩ»òÈ«²¿½øÐÐÀàÐÍת»»£¬ÕâÖÖת»»ÓÐÁ½ÖÖÐÎʽ£¬Ò»ÖÖÊDZàÒëÆ÷×Ô¶¯½øÐе쬽ÐÒþʽÀàÐÍת»»£¬ÁíÒ»ÖÖÊDZà³ÌÖÐÇ ......
×Ö·ûÊý×éºÍ×Ö·û´®
&×Ö·ûÊý×éºÍ×Ö·û´®µÄ¸ÅÄî &×Ö·ûÊý×éµÄ³õʼ»¯
&×Ö·û´®µÄÊäÈëÊä³ö &×ۺϾÙÀý
×Ö·ûÊý×éºÍ×Ö·û´®µÄ¸ÅÄî
×Ö·ûÊý×éÊÇÔªËØÀàÐÍΪ×Ö·ûµÄÊý×é ,Ëü¼È¾ßÓÐÆÕͨÊý×éµÄÒ»°ãÐÔÖÊ ,ÓÖ¾ßÓÐÄ³Ð©ÌØÊâÐÔÖÊ¡£
& ......
ÔÚWindows 2000/XPÖУ¬"Documents and Settings"ÊÇÒ»¸öÌØÊâÎļþ¼Ð¡£Óû§ÅäÖÃÎļþ¡¢×ÀÃæ¡£ÉõÖÁÁ¬ÃÜÔ¿ÐÅÏ¢¶¼±£´æÔÚÕâÀïÃæ¡£Èç¹ûÓ²Å̿ռ䲻¹»£¬Ïë°ÑËüÃÇ»»¸öµØ·½¡£µ«ÕâЩ¶«Î÷È´ºÜÄÑÒÆ¶¯¡£ÎÒÃǵÄÎÊÌâÊÇ£ºÈçºÎÔÚ±£Ö¤ÏµÍ³Õý³£ÔËÐеÄÇé¿öÏ£¬½«"Documents and Settings"Îļþ¼ÐÒÆ¶¯µ½ÁíÍâÒ»¸ö·ÖÇø?
......
#include <dirent.h>
#include <sys/stat.h>
#include <sys/types.h>
/****************************************************
* º¯Êý¹¦ÄÜ: ÅжϲÎÊý·¾¶ÊÇ·ñΪ(ÕýÈ·µÄ)Ŀ¼
* º¯Êý·µ»Ø: 0Ϊ±íʾ·¾¶ÎªÎļþ,1Ϊ·ÇĿ¼.ÆäËûΪ´íÎó
* ²ÎÊý: pathÎļþÐèÒªÅжϵÄĿ¼µÄ·¾¶.
*  ......