Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

linux³£ÓÃcº¯Êý ÎļþȨÏÞ¿ØÖÆÆª

access£¨ÅжÏÊÇ·ñ¾ßÓдæÈ¡ÎļþµÄȨÏÞ£©
¡¡¡¡Ïà¹Øº¯Êý  stat£¬open£¬chmod£¬chown£¬setuid£¬setgid
¡¡¡¡±íÍ·Îļþ  #include<unistd.h>
¡¡¡¡¶¨Ò庯Êý  int access(const char * pathname,int mode);
¡¡¡¡º¯Êý˵Ã÷  access()»á¼ì²éÊÇ·ñ¿ÉÒÔ¶Á/дijһÒÑ´æÔÚµÄÎļþ¡£²ÎÊý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 d


Ïà¹ØÎĵµ£º

ÈçºÎʹÓ÷ºÐÍÄ£擬virtual? (C/C++) (template)

ÍøÉÏÒ»µÀ½ðɽµÄÃæÊÔÌ⣺
http://topic.csdn.net/u/20100524/14/0eff992a-2849-4db6-bdaa-d4a200e79b7c.html
Çë·Ö±ðÓÃC++µÄÃæÏò¶ÔÏóºÍ·ºÐÍ»úÖÆ£¬±àдʵÏÖTemplate MethodģʽµÄʾÀý´úÂ룬²¢±È½ÏÁ½ÖÖ·½Ê½¸÷×ÔµÄÓÅȱµã¡£
ÓÃÐ麯ÊýʵÏÖTemplate MethodµÄ·½Ê½¾Í²»¶à˵ÁË¡£Ó÷ºÐ͵ķ½Ê½ÊµÏÖ¶à̬ÔÚATLÀïÃæÓдóÁ¿µÄÓõ½£¡
·ºÐ͵ ......

Linux AIO

LinuxµÄI/O»úÖÆ¾­ÀúÁËһϼ¸¸ö½×¶ÎµÄÑݽø£º
1. ͬ²½×èÈûI/O: Óû§½ø³Ì½øÐÐI/O²Ù×÷£¬Ò»Ö±×èÈûµ½I/O²Ù×÷Íê³ÉΪֹ¡£
2. ͬ²½·Ç×èÈûI/O: Óû§³ÌÐò¿ÉÒÔͨ¹ýÉèÖÃÎļþÃèÊö·ûµÄÊôÐÔO_NONBLOCK£¬I/O²Ù×÷¿ÉÒÔÁ¢¼´·µ»Ø£¬µ«ÊDz¢²»±£Ö¤I/O²Ù×÷³É¹¦¡£
3. Ò첽ʼþ×èÈûI/O: Óû§½ø³Ì¿ÉÒÔ¶ÔI/Oʼþ½øÐÐ×èÈû£¬µ«ÊÇI/O²Ù×÷²¢²»×èÈû¡£Í¨¹ýse ......

linux¹²ÏíÄÚ´æÊ¹ÓÃʵÀý

Èý¸öÎļþ£¬Ò»¸öÍ·Îļþ£¬Ò»¸ö¶Á£¬Ò»¸öд£¬ÓÃͬһ¸ökeyÖµÉêÇë¹²ÏíÄÚ´æ¡£
//shm.h
#ifndef _SHM_COM_H
#define _SHM_COM_H 1
#define TEXT_SZ 2048
struct shared_use_at
{
    int written_by_you;
    char some_text[TEXT_SZ];
};
struct kts
{
 int power;
 int mod ......

linuxÏÂCÓïÑÔ¶àÏ̱߳à³ÌʵÀý

ѧ¶«Î÷£¬ÍùÍùʵÀý²ÅÊÇ×îÈÃÈ˸ÐÐËȤµÄ£¬ÀÏÊÇѧ»ù´¡ÀíÂÛ£¬²»¶¯ÊÖ£¬¸Ð¾õûÓгɾ͸У¬ºÇºÇ¡£
   ÏÂÃæÏÈÀ´Ò»¸öʵÀý¡£ÎÒÃÇͨ¹ý´´½¨Á½¸öÏß³ÌÀ´ÊµÏÖ¶ÔÒ»¸öÊýµÄµÝ¼Ó¡£
»òÐíÕâ¸öʵÀýûÓÐʵ¼ÊÔËÓõļÛÖµ£¬µ«ÊÇÉÔ΢¸Ä¶¯Ò»Ï£¬ÎÒÃǾͿÉÒÔÓõ½ÆäËûµØ·½È¥À­¡£
ÏÂÃæÊÇÎÒÃǵĴúÂ룺
/*thread_example.c : c multiple thread p ......

linux menuconfig

Linux 2.6.19.x Äں˱àÒëÅäÖÃÑ¡Ïî¼ò½é
×÷Õߣº½ð²½¹ú
°æÈ¨ÉùÃ÷
±¾ÎÄ×÷ÕßÊÇһλ×ÔÓÉÈí¼þ°®ºÃÕߣ¬ËùÒÔ±¾ÎÄËäÈ»²»ÊÇÈí¼þ£¬µ«ÊDZ¾×Å GPL µÄ¾«Éñ·¢²¼¡£ÈκÎÈ˶¼¿ÉÒÔ×ÔÓÉʹÓá¢×ªÔØ¡¢¸´ÖƺÍÔÙ·Ö·¢£¬µ«±ØÐë±£Áô×÷ÕßÊðÃû£¬Ò಻µÃ¶ÔÉùÃ÷ÖеÄÈκÎÌõ¿î×÷ÈκÎÐÎʽµÄÐ޸ģ¬Ò²²»µÃ¸½¼ÓÈÎºÎÆäËüÌõ¼þ¡£Äú¿ÉÒÔ×ÔÓÉÁ´½Ó¡¢ÏÂÔØ¡¢´«²¥´ËÎĵµ£¬ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ