Linuxϵͳµ÷Óà accessº¯ÊýÏê½â
Linuxϵͳµ÷ÓÃ--accessº¯ÊýÏê½â
2007-07-30 23:10
¡¾accessϵͳµ÷Óá¿
¹¦ÄÜÃèÊö£º
¼ì²éµ÷Óýø³ÌÊÇ·ñ¿ÉÒÔ¶ÔÖ¸¶¨µÄÎļþÖ´ÐÐijÖÖ²Ù×÷¡£
Ó÷¨£º
#include <unistd.h>
#include <fcntl.h>
int access(const char *pathname, int mode);
²ÎÊý£º
pathname: ÐèÒª²âÊÔµÄÎļþ·¾¶Ãû¡£
mode: ÐèÒª²âÊԵIJÙ×÷ģʽ£¬¿ÉÄÜÖµÊÇÒ»¸ö»ò¶à¸öR_OK(¿É¶Á?), W_OK(¿Éд?), X_OK(¿ÉÖ´ÐÐ?) »ò F_OK(Îļþ´æÔÚ?)×éºÏÌå¡£
·µ»ØËµÃ÷£º
³É¹¦Ö´ÐÐʱ£¬·µ»Ø0¡£Ê§°Ü·µ»Ø-1£¬errno±»ÉèΪÒÔϵÄij¸öÖµ
EINVAL£º ģʽֵÎÞЧ
EACCES£º Îļþ»ò·¾¶ÃûÖаüº¬µÄĿ¼²»¿É·ÃÎÊ
ELOOP £º ½âÊÍ·¾¶Ãû¹ý³ÌÖдæÔÚÌ«¶àµÄ·ûºÅÁ¬½Ó
ENAMETOOLONG£ºÂ·¾¶ÃûÌ«³¤
ENOENT£º ·¾¶ÃûÖеÄĿ¼²»´æÔÚ»òÊÇÎÞЧµÄ·ûºÅÁ¬½Ó
ENOTDIR£º ·¾¶ÃûÖе±×÷Ŀ¼µÄ×é¼þ²¢·ÇĿ¼
EROFS£º Îļþϵͳֻ¶Á
EFAULT£º ·¾¶ÃûÖ¸Ïò¿É·ÃÎʵĿռäÍâ
EIO£º ÊäÈëÊä³ö´íÎó
ENOMEM£º ²»ÄÜ»ñÈ¡×ã¹»µÄÄÚºËÄÚ´æ
ETXTBSY£º¶Ô³ÌÐòдÈë³ö´í
Àý×Ó£º
/* test.c */
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
int main(int argc, char *argv[])
{
if (argc < 2) {
printf("Usage: ./test filename\n");
exit(1);
}
if (access(argv[1], F_OK) == -1) {
puts("File not exists!");
exit(2);
}
if (access(argv[1], R_OK) == -1)
puts("You can't read the file!");
else
if (access(argv[1], R_OK | W_OK) != -1)
puts("You can read and write the file");
else
&n
Ïà¹ØÎĵµ£º
£¨L2CAPÐÒé¼ò½é£¬L2CAPÔÚBlueZÖеÄʵÏÖÒÔ¼°L2CAP±à³Ì½Ó¿Ú£©
Ò»£ºL2CAPÐÒé¼ò½é£º
Logical Link Control and Adaptation Protocol(L2CAP)
Âß¼Á¬½Ó¿ØÖƺÍÊÊÅäÐÒé (L2CAP) ΪÉϲãÐÒéÌá¹©ÃæÏòÁ¬½ÓºÍÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬²¢Ìṩ¶àÐÒ鹦ÄܺͷָîÖØ×é²Ù×÷¡£L2CAP ³äÐíÉϲãÐÒéºÍÓ¦ÓÃÈí¼þ´«ÊäºÍ½ÓÊÕ×î´ó³¤¶ÈΪ 64K µÄ L2CAP Ê ......
Service Discovery Protocol(SDP)ÌṩһÖÖÄÜÁ¦£¬ÈÃÓ¦ÓóÌÐòÓз½·¨·¢ÏÖÄÄÖÖ·þÎñ¿ÉÓÃÒÔ¼°ÕâÖÖ·þÎñµÄÌØÐÔ¡£
·þÎñ·¢ÏÖÐÒé(SDP»òBluetooth SDP)ÔÚÀ¶ÑÀÐÒéÕ»ÖжÔÀ¶ÑÀ»·¾³ÖеÄÓ¦ÓóÌÐòÓÐÌØÊâµÄº¬Ò⣬·¢ÏÖÄĸö·þÎñÊÇ¿ÉÓõĺÍÈ·¶¨ÕâЩ¿ÉÓ÷þÎñµÄÌØÕ÷¡£SDP¶¨ÒåÁËbluetooth client·¢ÏÖ¿ÉÓÃbluetooth server·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£ ......
man -k [keyword ] ÔÚwhatis Êý¾Ý¿âÖвéÕҹؼü×Ö£»
•man -f [keyword ] ͬÉÏ£¬µ«keyword Ϊһ¸öÕû×Ö(whole word)
•man -a [keyword ] ͨ³£man »áÏÔʾµÚÒ»¸öÕÒµ½µÄkeywordµÄman page£¬µ« ......
1. ǰÑÔ
±¾ÎĽéÉÜlinuxÄÚºËÖÐһЩ³£ÓõÄÊý¾Ý½á¹¹ºÍ²Ù×÷¡£
2. Ë«ÏòÁ´±í(list)
linuxÄÚºËÖеÄË«ÏòÁ´±íͨ¹ý½á¹¹ struct list_headÀ´½«¸÷¸ö½ÚµãÁ¬½ÓÆðÀ´£¬´Ë½á¹¹»á×÷ΪÁ´±íÔªËØ½á¹¹ÖеÄÒ»¸ö²ÎÊý£º
struct list_head {
struct list_head *next, *prev;
};
Á´±íÍ·µÄ³õʼ»¯£¬×¢Ò⣬ ......
µ½ÁËmain.c£¬Æäʵmain.cÖеĴ󲿷ֵÄÄÚÈÝÊǵ÷Óú¯ÊýÀ´ÊµÏÖ³õʼ»¯µÄ¹¤×÷£¬µ«ÊÇ»¹Êǽ«Ëü¿´ÍêÁË¡£ÏÂÃæ¾ÍÊÇ´úÂëÁË¡£Ö÷Òª²Î¿¼µÄÊÇlinuxÄÚºËÍêȫעÊÍ£¬ÔÚһЩ²»Ì«Ã÷°×µÄµØ·½£¬²Î¿¼ÍøÉϵĽéÉÜ¡£·Ï»°ÉÙ˵¡£»¹Óкܳ¤µÄ·°¡¡£Å¬Á¦°¡O(∩_∩)O~¡£
/*
* main.c¹¦ÄÜÃèÊö¡£
*/
//main.c³ÌÐòµÄÖ÷Òª¹¦ÄÜÊÇÀûÓÃsetup.s ......