LinuxÄÚºËÈëÃÅ£¨Æߣ©—— ±ØÒªµÄ±àÒë֪ʶ
ËùÓеÄÄں˴úÂ룬»ù±¾¶¼°üº¬ÁËinclude/linux/compile.hÕâ¸öÎļþ£¬ËùÒÔËüÊÇ»ù´¡£¬º¸ÇÁË·ÖÎöÄÚºËËùÐèÒªµÄһЩÁбàÒë֪ʶ£¬±¾²©¾Í·ÖÎö·ÖÎöÕâ¸öÎļþÀïµÄ´úÂ룺
#ifndef __LINUX_COMPILER_H
#define __LINUX_COMPILER_H
#ifndef __ASSEMBLY__
Ê×ÏÈÓ¡ÈëÑÛÁ±µÄÊǶÔ__ASSEMBLY__Õâ¸öºêµÄÅжϣ¬Õâ¸ö±äÁ¿Êµ¼ÊÊÇÔÚ±àÒë»ã±à´úÂëµÄʱºò£¬ÓɱàÒëÆ÷ʹÓÃ-DÕâÑùµÄ²ÎÊý¼Ó½øÈ¥µÄ£¬gcc»á°ÑÕâ¸öºê¶¨ÒåΪ1¡£ÓÃÔÚÕâÀÊÇÒòΪ»ã±à´úÂëÀ²»»áÓõ½ÀàËÆÓÚ__userÕâÑùµÄÊôÐÔ£¨¹ØÓÚ __userÕâÑùµÄÊôÐÔÊÇÔõô»Ø×ÓÊ£¬±¾²©ºóÃæ»áÌáµ½£©£¬ÒòΪÕâÑùµÄÊôÐÔÊÇÔÚ¶¨Ò庯Êý²ÎÊýµÄʱºò¼ÓµÄ£¬ÕâÑù±ÜÃâ²»±ØÒªµÄºêÔÚ±àÒë»ã±à´úÂëʱºòµÄÒýÓá£
#ifdef __CHECKER__
½ÓÏÂÀ´ÊÇÒ»¸ö¶Ô__CHECKER__Õâ¸öºêµÄÅжϣ¬ÕâÀïÐèÒª½²µÄ¶«Î÷±È½Ï¶à£¬ÊDZ¾²©µÄÖص㡣
µ±±àÒëÄں˴úÂëµÄʱºò£¬Ê¹ÓÃmake C=1»òC=2µÄʱºò£¬»áµ÷ÓÃÒ»¸ö½ÐSparseµÄ¹¤¾ß£¬Õâ¸ö¹¤¾ß¶ÔÄں˴úÂë½øÐмì²é£¬Ôõô¼ì²éÄØ£¬¾ÍÊÇ¿¿¶ÔÄÇЩÉùÃ÷¹ýSparseÕâ¸ö¹¤¾ßËùÄÜʶ±ðµÄÌØÐÔµÄÄں˺¯Êý»òÊDZäÁ¿½øÐмì²é¡£ÔÚµ÷ÓÃSparseÕâ¸ö¹¤¾ßµÄͬʱ£¬ÔÚSparse´úÂëÀ»á¼ÓÉÏ#define __CHECKER__ 1µÄ×ÖÑù¡£»»¾ä»°Ëµ£¬¾ÍÊÇ£¬Èç¹ûʹÓÃSparse¶Ô´úÂë½øÐмì²é£¬ÄÇôÄں˴úÂë¾Í»á¶¨Òå__CHECKER__ºê£¬·ñÔò¾Í²»¶¨Òå¡£¾ßÌå½âÊÍÇë·ÃÎÊ£ºhttp://linux.die.net/man/1/sparse
ÀýÈ磺
# define __user __attribute__((noderef, address_space(1)))
Õâ¸öºêÊÇÖص㣬ÓÃÀ´¼ì²éÊÇ·ñÊôÓÚÓû§¿Õ¼ä£¡ÕâÀï¾ÍÄÜ¿´³öÀ´£¬ÀàËÆÓÚ__attribute__((noderef, address_space(1)))ÕâÑùµÄÊôÐÔ¾ÍÊÇSparseÕâ¸ö¹¤¾ßËùÄÜʶ±ðµÄÁË¡£
ÆäËûµÄÄÇЩ¸öÊôÐÔÊÇÓÃÀ´¼ì²éʲôµÄÄØ£¬ÎÒÒ»¸ö¸öµØ×ö½éÉÜ¡£
__user Õâ¸öÌØÐÔ£¬¼´__attribute__((noderef, address_space(1)))£¬ÊÇÓÃÀ´ÐÞÊÎÒ»¸ö±äÁ¿µÄ£¬Õâ¸ö±äÁ¿±ØÐëÊǷǽâ³ý²Î¿¼£¨__attribute__((noderef))——no dereference£©µÄ£¬¼´Õâ¸ö±äÁ¿µØÖ·±ØÐëÊÇÓÐЧµÄ£¬¶øÇÒ±äÁ¿ËùÔڵĵØÖ·¿Õ¼ä±ØÐëÊÇ1£¨__attribute__((address_space(1)))£©£¬¼´Óû§³ÌÐò¿Õ¼äµÄ¡£ÕâÀïSparse¹¤¾ß°Ñ³ÌÐò¿Õ¼ä·Ö³ÉÁË3¸ö²¿·Ö£¬0±íʾnormal space£¬¼´ÆÕͨµØÖ·¿Õ¼ä£¬¶ÔÄں˴úÂëÀ´Ëµ£¬µ±È»¾ÍÊÇÄں˿ռäµØÖ·ÁË¡£1±íʾÓû§µØÖ·¿Õ¼ä£¬Õâ¸ö²»Óöི£¬»¹ÓÐÒ»¸ö2£¬±íʾÊÇÉ豸µØÖ·Ó³Éä¿Õ¼ä£¬ÀýÈçÓ²¼þÉ豸µÄ¼Ä´æÆ÷ÔÚÄÚºËÀïËùÓ³ÉäµÄµØÖ·¿Õ¼ä¡£
ËùÒÔÔÚÄں˺¯ÊýÀÓ
Ïà¹ØÎĵµ£º
£¨1£©²é¿´Ê±ÖÓÖжϣº
$ cat /proc/interrupts
CPU0
0: 1380471 IO-APIC-edge timer
1: 3626 IO-APIC-edge i8 ......
1. ÓÐЩÃüÁî²ÎÊý¹ý¶à£¬¿ÉÒÔÓÃgrepÀ´·½±ã²éÕÒ£¬È磺
iptables -h 2>&1|grep '\-A'
ÆäÖÐ2>&1½«stderrתÏòstdout£¬È»ºóÎÒÃǾͿÉÒÔͨ¹ýgrepÕÒµ½ÐèÒªµÄÑ¡ÏҪעÒâµÄÊǺá¸Ë֮ǰҪ¼Ó·´Ð±¸ ......
ÔÚÍøÉÏÕÒµ½µÄÒ»¸ö³ÌÐò
[c]
#include <stdio.h>
#include <sys/types.h>
#include <regex.h>
/* È¡×Ó´®µÄº¯Êý */
static char* substr(const char*str,unsigned start, unsigned end)
{
unsigned n = end - start;
static char stbuf[256]; ......
chmod(change mode)
¹¦ÄÜ˵Ã÷£º±ä¸üÎļþ»òĿ¼µÄȨÏÞ¡£
Óï¡¡¡¡·¨£ºchmod [-cfRv][--help][--version][<ȨÏÞ·¶Î§>+/-/=<ȨÏÞÉèÖÃ...>][Îļþ»òĿ¼...] »ò chmod [-cfRv][--help][--version][Êý×Ö´úºÅ][Îļþ»òĿ¼...] »ò chmod [-cfRv][--help][--reference=<²Î¿¼ ......
д¸øLinuxÄÚºËÐÂÊÖ-¹ØÓÚLinuxÄÚºËѧϰµÄÎóÇø
albcamus
http://bbs.chinaunix.net/viewthread.php?tid=626486
¡¡¡¡ÏÈ˵¾äÕý¾µÄ£ºÆäʵÎÒû×ʸñдÕâƪÎÄÕ£¬ÒòΪ×Ô¼ºÒ²¾ÍÒ»Á½¸öÔÂÒÔÀ´²Å¿ªÊ¼ÓÐËùÁìÎòµÄ¡£Òò´Ë£¬ÕâÀïÓëÆä˵ÊǹØÓÚLinuxÄÚºËѧϰµÄ¾Ñ飬²»Èç˵ÊÇ×Ô¼ºµÄ½Ìѵ°É£¬Ï£Íû²»ÒªÈÓ¼¦µ°ÔÒÎÒ^_^
¡¡¡¡¡¡³£³£ÓÐÈËÎÊ£ºÎÒÏëÑ ......