linuxÉ豸Îļþϵͳsysfs½éÉÜ
linuxÏÂÓÐרÃŵÄÎļþϵͳÓÃÀ´¶ÔÉ豸½øÐйÜÀí£¬devfsºÍsysfs¾ÍÊÇÆäÖÐÁ½ÖÖ¡£
1£¬devfs£ºdevfsÊÇÔÚ2.4Äں˾ͳöÏÖÁË£¬ËüÊÇÓÃÀ´½â¾ölinuxÖÐÉ豸¹ÜÀí»ìÂÒµÄÎÊÌ⣬linuxÄں˿ª·¢ÈËÔ±¿ª·¢ÁËdevfs¡£
2£¬sysfs£ºÊÇLinux ÄÚºËÖÐÉè¼Æ½ÏеÄÒ»ÖÖÐéÄâµÄ»ùÓÚÄÚ´æµÄÎļþϵͳ£¬ËüµÄ×÷ÓÃÓëproc ÓÐЩÀàËÆ£¬µ«³ýÁËÓëproc ÏàͬµÄ¾ßÓв鿴ºÍÉ趨Äں˲ÎÊý¹¦ÄÜÖ®Í⣬»¹ÓÐΪLinux ͳһÉ豸ģÐÍ×÷Ϊ¹ÜÀíÖ®Óá£sysfs Îļþϵͳ×ÜÊDZ»¹ÒÔØÔÚ/sys ¹ÒÔØµãÉÏ¡£ËäÈ»ÔÚ½ÏÔçÆÚµÄ2.6ÄÚºËϵͳÉϲ¢Ã»Óй涨sysfsµÄ±ê×¼¹ÒÔØÎ»Ö㬿ÉÒÔ°Ñsysfs ¹ÒÔØÔÚÈκÎλÖ㬵«½Ï½üµÄ2.6ÄÚºËÐÞÕýÁËÕâÒ»¹æÔò£¬ÒªÇósysfs ×ÜÊǹÒÔØÔÚ/sysĿ¼ÉÏ¡£sysfs Óëproc Ïà±ÈÓкܶàÓŵ㣺sysfs µÄÉè¼ÆÔÔòÊÇÒ»¸öÊôÐÔÎļþÖ»×öÒ»¼þÊÂÇ飬sysfs ÊôÐÔÎļþÒ»°ãÖ»ÓÐÒ»¸öÖµ£¬Ö±½Ó¶ÁÈ¡»òдÈë¡£ÐÂÉè¼ÆµÄÄں˻úÖÆÓ¦¸Ã¾¡Á¿Ê¹ÓÃsysfs»úÖÆ£¬¶ø½«proc ±£Áô¸ø´¿¾»µÄ“½ø³ÌÎļþϵͳ”¡£
UBUNTUÖбÈÈ磺ִÐÐls -F /sys£¬µÃblock/ bus/ class/ dev/ devices/ firmware/ fs/ kernel/ module/ power/
ÏÂÃæ¶Ô/sys ÎļþϵͳϵÄĿ¼½á¹¹×ö˵Ã÷£º
/sys/devices£ºÕâÊÇÄں˶ÔϵͳÖÐËùÓÐÉ豸µÄ·Ö²ã´Î±í´ïÄ£ÐÍ£¬Ò²ÊÇ /sys Îļþϵͳ¹ÜÀíÉ豸µÄ×îÖØÒªµÄĿ¼½á¹¹£»
/sys/dev£ºÕâ¸öĿ¼ÏÂά»¤Ò»¸ö°´×Ö·ûÉ豸ºÍ¿éÉ豸µÄÖ÷´ÎºÅÂë(major:minor)Á´½Óµ½ÕæÊµµÄÉ豸(/sys/devicesÏÂ)µÄ·ûºÅÁ´½ÓÎļþ£¬ËüÊÇÔÚÄÚºË2.6.26 Ê×´ÎÒýÈ룻
/sys/bus£ºÕâÊÇÄÚºËÉ豸°´×ÜÏßÀàÐÍ·Ö²ã·ÅÖõÄĿ¼½á¹¹£¬devicesÖеÄËùÓÐÉ豸¶¼ÊÇÁ¬½ÓÓÚijÖÖ×ÜÏß֮ϣ¬ÔÚÕâÀïµÄÿһÖÖ¾ßÌå×ÜÏß֮ϿÉÒÔÕÒµ½Ã¿Ò»¸ö¾ßÌåÉ豸µÄ·ûºÅÁ´½Ó£¬ËüÒ²Êǹ¹³É Linux ͳһÉ豸ģÐ͵ÄÒ»²¿·Ö£»
/sys/class£ºÕâÊǰ´ÕÕÉ豸¹¦ÄÜ·ÖÀàµÄÉ豸ģÐÍ£¬ÈçϵͳËùÓÐÊäÈëÉ豸¶¼»á³öÏÖÔÚ /sys/class/input ֮ϣ¬¶ø²»ÂÛËüÃÇÊÇÒÔºÎÖÖ×ÜÏßÁ¬½Óµ½ÏµÍ³¡£ËüÒ²Êǹ¹³ÉLinux ͳһÉ豸ģÐ͵ÄÒ»²¿·Ö£»
/sys/block£ºÕâÀïÊÇϵͳÖе±Ç°ËùÓеĿéÉ豸ËùÔÚ£¬°´ÕÕ¹¦ÄÜÀ´Ëµ·ÅÖÃÔÚ/sys/class ֮ϻá¸üºÏÊÊ£¬µ«Ö»ÊÇÓÉÓÚÀúÊ·ÒÅÁôÒòËØ¶øÒ»Ö±´æÔÚÓÚ/sys/block, µ«´Ó2.6.22 ¿ªÊ¼¾ÍÒѱê¼ÇΪ¹ýʱ£¬Ö»ÓÐÔÚ´ò¿ªÁËCONFIG_SYSFS_DEPRECATED ÅäÖÃϱàÒë²Å»áÓÐÕâ¸öĿ¼µÄ´æÔÚ£¬²¢ÇÒÔÚ2.6.26 ÄÚºËÖÐÒÑÕýÊ½ÒÆµ½ /sys/class/block, ¾ÉµÄ½Ó¿Ú/sys/block ΪÁËÏòºó¼æÈݱ£Áô´æÔÚ£¬µ«ÆäÖеÄÄÚÈÝÒѾ±äΪָÏòËüÃÇÔÚ/sys/devices/
Ïà¹ØÎĵµ£º
Service Discovery Protocol(SDP)ÌṩһÖÖÄÜÁ¦£¬ÈÃÓ¦ÓóÌÐòÓз½·¨·¢ÏÖÄÄÖÖ·þÎñ¿ÉÓÃÒÔ¼°ÕâÖÖ·þÎñµÄÌØÐÔ¡£
·þÎñ·¢ÏÖÐÒé(SDP»òBluetooth SDP)ÔÚÀ¶ÑÀÐÒéÕ»ÖжÔÀ¶ÑÀ»·¾³ÖеÄÓ¦ÓóÌÐòÓÐÌØÊâµÄº¬Ò⣬·¢ÏÖÄĸö·þÎñÊÇ¿ÉÓõĺÍÈ·¶¨ÕâЩ¿ÉÓ÷þÎñµÄÌØÕ÷¡£SDP¶¨ÒåÁËbluetooth client·¢ÏÖ¿ÉÓÃbluetooth server·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£ ......
Ò»¡¢ËµÃ÷
¡¡¡¡ÀàËÆWindowsϵͳÖеĶ¯Ì¬Á´½Ó¿â£¬LinuxÖÐÒ²ÓÐÏàÓ¦µÄ¹²Ïí¿âÓÃÒÔÖ§³Ö´úÂëµÄ¸´Óá£WindowsÖÐΪ*.dll£¬¶øLinuxÖÐΪ*.so¡£ÏÂÃæÏêϸ½éÉÜÈçºÎ´´½¨¡¢Ê¹ÓÃLinuxµÄ¹²Ïí¿â¡£
¶þ¡¢´´½¨¹²Ïí¿â
ÔÚmytestso.cÎļþÖУ¬´úÂëÈçÏ£º
#include <stdio.h>
#include <stdlib.h>
int GetMax(int a, int b)
{
i ......
ÔÚlinuxϵͳÏ£¬Èç¹ûÄãÏÂÔØ²¢°²×°ÁËÓ¦ÓóÌÐò£¬ºÜÓпÉÄÜÔÚ¼üÈëËüµÄÃû³ÆÊ±³öÏÖ“command not found”µÄÌáʾÄÚÈÝ¡£Èç¹ûÿ´Î¶¼µ½°²×°Ä¿±êÎļþ¼ÐÄÚ£¬ÕÒµ½¿ÉÖ´ÐÐÎļþÀ´½øÐвÙ×÷¾ÍÌ«·±ËöÁË¡£ÕâÉæ¼°µ½»·¾³±äÁ¿PATHµÄÉèÖÃÎÊÌ⣬¶øPATHµÄÉèÖÃÒ²ÊÇÔÚlinux϶¨ÖÆ»·¾³±äÁ¿µÄÒ»¸ö×é³É²¿·Ö¡£±¾ÎÄ»ùÓÚRedHat 9.0£¬Ïêϸ½²½âÁË»·¾ ......
˵ÊÇexecϵͳµ÷Óã¬Êµ¼ÊÉÏÔÚLinuxÖУ¬²¢²»´æÔÚÒ»¸öexec()µÄº¯ÊýÐÎʽ£¬execÖ¸µÄÊÇÒ»×麯Êý£¬Ò»¹²ÓÐ6¸ö£¬·Ö±ðÊÇ£º
#include <unistd.h>
int execl(const char *path, const char *arg, ...);
int execlp(const char *file, const char *arg, ...);
int execle(const char *path, const c ......