Linux ÉÏʵÏÖË«Ïò½ø³Ì¼äͨÐŹܵÀ(ת)
ÎÊÌâºÍ³£¼û·½·¨
Linux ÌṩÁË popen ºÍ pclose º¯Êý (1)£¬ÓÃÓÚ´´½¨ºÍ¹Ø±Õ¹ÜµÀÓëÁíÍâÒ»¸ö½ø³Ì½øÐÐͨÐÅ¡£Æä½Ó¿ÚÈçÏ£º
FILE *popen(const char *command£¬ const char *mode);
int pclose(FILE *stream);
Òź¶µÄÊÇ£¬popen ´´½¨µÄ¹ÜµÀÖ»ÄÜÊǵ¥ÏòµÄ -- mode Ö»ÄÜÊÇ "r" »ò "w" ¶ø²»ÄÜÊÇijÖÖ×éºÏ--Óû§Ö»ÄÜÑ¡ÔñҪôÍùÀïд£¬ÒªÃ´´ÓÖжÁ£¬¶ø²»ÄÜͬʱÔÚÒ»¸ö¹ÜµÀÖнøÐжÁд¡£Êµ¼ÊÓ¦ÓÃÖУ¬¾³£»áÓÐͬʱ½øÐжÁдµÄÒªÇ󣬱ÈÈ磬ÎÒÃÇ¿ÉÄÜÏ£Íû°ÑÎı¾Êý¾ÝËÍÍùsort¹¤¾ßÅÅÐòºóÔÙÈ¡»Ø½á¹û¡£´Ëʱpopen¾ÍÎÞ·¨ÓÃÉÏÁË¡£ÎÒÃÇÐèҪѰÕÒÆäËüµÄ½â¾ö·½°¸¡£
ÓÐÒ»ÖÖ½â¾ö·½°¸ÊÇʹÓà pipe º¯Êý (2)´´½¨Á½¸öµ¥Ïò¹ÜµÀ¡£Ã»ÓдíÎó¼ì²âµÄ´úÂëʾÒâÈçÏ£º
int pipe_in[2], pipe_out[2];
pid_t pid;
pipe(&pipe_in); // ´´½¨¸¸½ø³ÌÖÐÓÃÓÚ¶ÁÈ¡Êý¾ÝµÄ¹ÜµÀ
pipe(&pipe_out); // ´´½¨¸¸½ø³ÌÖÐÓÃÓÚдÈëÊý¾ÝµÄ¹ÜµÀ
if ( (pid = fork()) == 0) { // ×Ó½ø³Ì
close(pipe_in[0]); // ¹Ø±Õ¸¸½ø³ÌµÄ¶Á¹ÜµÀµÄ×Ó½ø³Ì¶Á¶Ë
close(pipe_out[1]); // ¹Ø±Õ¸¸½ø³ÌµÄд¹ÜµÀµÄ×Ó½ø³Ìд¶Ë
dup2(pipe_in[1], STDOUT_FILENO); // ¸´ÖƸ¸½ø³ÌµÄ¶Á¹ÜµÀµ½×Ó½ø³ÌµÄ±ê×¼Êä³ö
dup2(pipe_out[0], STDIN_FILENO); // ¸´ÖƸ¸½ø³ÌµÄд¹ÜµÀµ½×Ó½ø³ÌµÄ±ê×¼ÊäÈë
close(pipe_in[1]); // ¹Ø±ÕÒѸ´ÖƵĶÁ¹ÜµÀ
close(pipe_out[0]); // ¹Ø±ÕÒѸ´ÖƵÄд¹ÜµÀ
/* ʹÓÃexecÖ´ÐÐÃüÁî */
} else { // ¸¸½ø³Ì
close(pipe_in[1]); // ¹Ø±Õ¶Á¹ÜµÀµÄд¶Ë
close(pipe_out[0]); // ¹Ø±Õд¹ÜµÀµÄ¶Á¶Ë
/* ÏÖÔÚ¿ÉÏòpipe_out[1]ÖÐдÊý¾Ý£¬²¢´Ópipe_in[0]ÖжÁ½á¹û */
close(pipe_out[1]); // ¹Ø±Õд¹ÜµÀ
/* ¶ÁÈ¡pipe_in[0]ÖеÄÊ£ÓàÊý¾Ý */
close(pipe_in[0]); // ¹Ø±Õ¶Á¹ÜµÀ
/* ʹÓÃwaitϵÁк¯ÊýµÈ´ý×Ó½ø³ÌÍ˳ö²¢È¡µÃÍ˳ö´úÂë */
}
µ±È»£¬ÕâÑùµÄ´úÂëµÄ¿É¶ÁÐÔ£¨ÌرðÊǼÓÉÏ´íÎó´¦Àí´úÂëÖ®ºó£©±È½Ï²î£¬Ò²²»ÈÝÒ×·â×°³ÉÀàËÆÓÚpopen/pcloseµÄº¯Êý£¬·½±ã¸ß²ã´úÂëʹÓ᣾¿ÆäÔÒò£¬ÊÇpipeº¯Êý·µ»ØµÄÒ»¶ÔÎļþÃèÊö·ûÖ»ÄÜ´ÓµÚÒ»¸öÖжÁ¡¢µÚ¶þ¸öÖÐд£¨ÖÁÉÙ¶ÔÓÚLinuxÊÇÈç´Ë£©¡£ÎªÁËͬʱ¶Áд£¬¾ÍÖ»ÄܲÉÈ¡ÕâôÀÛ׸µÄÁ½¸öpipeµ÷Óá¢Á½¸öÎļþÃèÊö·ûµÄÐÎʽÁË¡£
»ØÒ³Ê×
Ò»¸ö¸üºÃµÄ·½°¸
ʹÓÃpipe¾ÍÖ»ÄÜÈç´ËÁË¡£²»¹ý£¬LinuxʵÏÖÁËÒ»¸öÔ´×ÔBSDµÄsocketpairµ÷Óà (3)£¬¿ÉÒÔʵÏÖÉÏÊöÔÚͬһ¸öÎļþÃèÊö·ûÖнøÐжÁдµÄ¹¦ÄÜ£¨¸Ãµ÷ÓÃĿǰҲÊÇPOSIX¹æ·¶µÄÒ»²¿·Ö (4)£©¡£¸Ãϵͳµ÷ÓÃÄÜ´´½¨Ò»¶Ô
Ïà¹ØÎĵµ£º
1. HCI²ãÐÒé¸ÅÊö£º
HCIÌṩһÌ×ͳһµÄ·½·¨À´·ÃÎÊBluetoothµ×²ã¡£ÈçͼËùʾ£º
´ÓͼÉÏ¿ÉÒÔ¿´³ö£¬Host Controller Interface(HCI) ¾ÍÊÇÓÃÀ´¹µÍ¨HostºÍModule¡£Hostͨ³£¾ÍÊÇPC£¬ ModuleÔòÊÇÒÔ¸÷ÖÖÎïÀíÁ¬½ÓÐÎʽ£¨USB,serial,pc-cardµÈ£©Á¬½Óµ½PCÉϵÄbluetooth Dongle¡£
ÔÚHostÕâÒ»¶Ë£ºapplication,SDP,L2capµÈÐÒé ......
¹éÄÉÒ»ÏÂlinuxÏ¿ª·¢µÄautomakeÏà¹ØµÄ£¬Ã»ÓÐʱ¼äдֻºÃ×ªÔØÒ»Ð©ºÃµÄÁË
±¾ÎÄ×ªÔØÓÚ£º http://blog.csdn.net/absurd/archive/2006/06/12/792397.aspx
Autoconf/automake step by step
Autoconf/automake
ÔÚ ......
ת£©ÍêȫʹÓÃgnu/linux¹¤×÷
ÉÏһƪ / ÏÂһƪ 2008-08-17 17:59:59
²é¿´( 1752 ) / ÆÀÂÛ( 0 ) / ÆÀ·Ö( 0 / 0 )
ÍêÈ«ÓÃGNU/Linux¹¤×÷
Ç廪´óѧ Íõ珢
ÎÒÒѾ°ëÄêûÓÐʹÓà Windows µÄ·½Ê½¹¤×÷ÁË¡£Linux ¸ßЧµÄÍê³ÉÁËÎÒËùÓеŤ×÷¡£
GNU/Linux ²»ÊÇÿ¸öÈ˶¼ÏëÓõġ£Èç¹ûÄãÖ»ÐèÒª´¦ÀíÒ»°ãµÄÊÂÎñ£¬´òÓÎÏ·£¬ÄÇà ......
ѧϰ±ðÈ˵ģ¬¼Ç¼×Ô¼ºµÄ¡£
1¡¢sysinfoÓ÷¨
#include <sys/sysinfo.h>
int sysinfo(struct sysinfo info);
¼Ç¼ÁËlinuxÖÐÆô¶¯Ê±¼ä¡¢ÄÚ´æÐÅÏ¢¡¢½»»»·ÖÇø¡¢cpu¸ºÔصÈÐÅÏ¢¡£
³É¹¦·µ»Ø0£¬Ê§°Ü·µ»Ø-1
struct sysinfo {
long uptime;   ......
Áí£ºÒªÊµÏÖijһЩlinux×Ô´øÃüÁîÏàͬµÄ¹¦ÄÜ£¬£¨±ÈÈ磺ҪʵÏÖÔÚlinuxϲéѯcpuµÄÕ¼ÓÃÂÊ£¬linuxµÄÃüÁîÊÇtop£©, ¿ÉÒԲο¼Ò»Ï¸ÃÃüÁî(top)µÄlinuxÔ´Â룬
ת×Ôhttp://hi.baidu.com/yanjinbin/blog/item/3d25ebdd29756fea76c6381f.html
# which reboot <---whichÖ¸Áî»áÔÚ»·¾³±äÁ¿$PATHÉèÖõÄĿ¼Àï²éÕÒ·ûºÏÌõ¼þµÄ ......