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

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)£©¡£¸Ãϵͳµ÷ÓÃÄÜ´´½¨Ò»¶Ô


Ïà¹ØÎĵµ£º

ʵսLinux Bluetooth±à³Ì£¨Èý£© HCI²ã±à³Ì

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Ïà¹ØÎÄÕ ֮¶þ




¹éÄÉÒ»ÏÂlinuxÏ¿ª·¢µÄautomakeÏà¹ØµÄ£¬Ã»ÓÐʱ¼äдֻºÃ×ªÔØÒ»Ð©ºÃµÄÁË
±¾ÎÄ×ªÔØÓÚ£º   http://xunet.blog.51cto.com/138167/22019
ʹÓÃAutomake,AutoconfÉú³ÉMakefile
ÔÚUnixÉÏд¹ý³ÌÐòµÄÈËÓÈÆäÊÇÓà C À´¿ª·¢³ÌÐòµÄÈËÒ»°ã¶¼Óöµ½¹ý Makefile£¬Óà make
À´¿ª·¢ºÍ± ......

ÔÚ64λlinuxÉϱàÒë32λ³ÌÐò

[±à¼­ÖÐ]
-m32
# ld -V
GNU ld version 2.15.92.0.2 20040927
  Supported emulations:
   elf_x86_64
   elf_i386
   i386linux
#ld -m elf_i386
Along with the -m32 flag in gcc, you may need to include the -melf_i386 flag for ld to properly link the 32bi ......

linuxº¯Êý¡¢½á¹¹ÌåÑо¿

ѧϰ±ðÈ˵ģ¬¼Ç¼×Ô¼ºµÄ¡£
1¡¢sysinfoÓ÷¨
#include <sys/sysinfo.h>
int sysinfo(struct sysinfo info);
¼Ç¼ÁËlinuxÖÐÆô¶¯Ê±¼ä¡¢ÄÚ´æÐÅÏ¢¡¢½»»»·ÖÇø¡¢cpu¸ºÔصÈÐÅÏ¢¡£
³É¹¦·µ»Ø0£¬Ê§°Ü·µ»Ø-1
struct sysinfo {
    long uptime;           ......

ÈçºÎÐ¶ÔØlinuxϵÄhttpd

     µ±ÎÒÃÇÏëÐ¶ÔØhttpd µÄʱºò£¬Ê¹ÓÃrpm -qa httpd µÄʱºò£¬ÎÒÃÇ·¢ÏÖÓкܶàµÄÒÀÀµ°ü¡£ÎÒÃÇÄÍÐĵÄÏëÒ»¸öÒ»¸öµÄÐ¶ÔØµÄʱºò£¨Ê¹ÓÃrpm -e httpd-*£©£¬»¹»á½øÈëËÀÑ­»·¡£
½â¾öµÄ°ì·¨ÊÇ£ºÊ¹Óà rpm -e httpd-* --nodeps˵Ã÷£º¡°*¡±ÊÇͨÅä·û¡£
 
°²×°CentOS5.3µÄʱºò»áĬÈϰ²×°httpd·þÎñ¡£
Ê×ÏȲ鿴 ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ