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

LINUX SOCKET AIO ÎÊÌâ

дÁË´úÂ룬ʹÓÃace_proactor, Ô­À´windowsÅܵ÷dz£Æ¯ÁÁ£¬À´µ½linux¾Íʱ²»Ê±²»¹¤×÷£¬È»ºó¼Óasynce_connectorºó£¬·¢ÏÖÍê³É²»Äܹ¤×÷£¬async_stream_writeºó£¬·¢ÏÖ¿¨ÔÚÄÇÀ¸ù±¾·¢²»³öÈ¥£¬¶à´Î·ÖÎöºó£¬·¢ÏÖ£¬Ô­À´Ö®Ç°ÓÐaio_readûÓÐÍê³É£¬aio_writeµÄÇëÇó¾ÍblockÄÇÀïÁË£¬writeÕâ¸ö²Ù×÷¾¹È»Ò»¶¨ÒªµÈǰµÄaio_readÍê³ÉÖ®ºó£¬²Å¿ÉÒÔÖ´ÐС£ Ö¤¾ÝÈçÏÂ:
1.¿¨×¡µÄaio_write »á³ÉÉÏÍê³É£¬Èç¹ûsocket±»¶Ô·½¹Ø±Õ¡£
2.ÔÚaio_read֮ǰÉèÖÃsocketµÄģʽΪnonblocking, һʱwrite²Ù×÷³öÏÖ£¬aio_read ÂíÉÏÍê³É£¬²¢·µ»Ø´íÎóÂë EAGAIN£¬È»ºóaio_writeµÄÇëÇóÒ²¸øÍê³ÉÁË¡£
3.socketµÄģʽÔÚaceºÍIBMÓйصÄaioÎĵµÖиøÇ¿µ÷£¬must be ing blocking mode.
Ìì°¡£¡
³¢ÊÔÁËÔÚaio_write֮ǰÈç¹ûÓжÁ²Ù×÷£¬Ê¹ÓÃaio_cancel½øÐÐcancel²Ù×÷£¬²»ÐУ¬ÓÚÊÇÉèÖÃÁËnonblockingģʽȻºó¶øcancel£¬»¹ÊÇûÓÐÈκη´Ó¦¡£
¿´À´LINUXµÄAIOʵÏÖÕæÊǹ»Àõ쬶ÔÓÚSOCKET²Ù×÷µÄʵÏÖÍêȫʧ°Ü£¡
¼ÙÉèÒÔÏÂÇéÐΣº
1.server ¹ã²¥Êý¾Ý¸ø¿Í»§¶Ë£¨µ÷ÓÃaio_write)£¬²¢ÇÒ·¢ËÍÁËÒ»ÌõÆÚÍûµÃµ½¿Í»§¶ËÏìÓ¦µÄÖ¸Áî(aio_read)£¬½á¹û¿Í»§¶Ë³¤ÆÚûÓÐÏìÓ¦£¬ÕâʱÎÒÏëÔÙ·¢Ò»Ìõ֪ͨÊý¾Ý¸ø¿Í»§¶Ë(µ÷ÓÃaio_write)£¬Õâ¸ö·¢Ë͵ÄÇëÇó¾Í¸øÄÚºËÀïblockסÔÚÄÇÀһֱ·¢²»³öÈ¥£¬ÒòΪËüÒªµÈÇ°ÃæÒ»¸öaio_readÍê³É, Ö±µ½¿Í»§¶ËÏìÓ¦ÁË»òÕßÊǶÏÏßÁË£¬ÕâµÚ¶þ¸öaio_write²Å»áÍê³É¡£
ÓôÃÆ°É¡£²¢ÇÒÄãÎÞ·¨È¡ÏûÕâÖÖ״̬£¬Õâ¸ösocket ¾ÍÍ£ÔÚÄÇÀïÁË¡£¡£¡£¡£
¶ÔÓÚserver¶ËÕâ¸ö»¹ºÃ¡£
Èç¹ûÄãµÄserver¶ËÓÖÐèÒªºÍÆäËüserver×÷ÁªÏµµÄʱºò£¬Äã¾ÍÂé·³ÁË£¬ÍêÈ«²»¿ÉÔ¤²â¡£


Ïà¹ØÎĵµ£º

linux Ó²Á´½Ó ÈíÁ´½Ó

linuxÖйØÓÚÁ´½ÓÀàÐÍ·ÖΪӲÁ´½ÓºÍÈíÁ´½Ó
  Ó²Á´½ÓÖ¸Áî ln  Îļþ  Á´½ÓÃû³Æ
  ÈíÁ´½ÓÖ¸Áî ln -s Îļþ  Á´½ÓÃû³Æ
¹²Í¬µã£º
  ¶¼¿ÉÒÔͨ¹ýÁ´½ÓÃû³ÆÈ¥·ÃÎʱ»Á´½ÓµÄÎļþ
²»Í¬µã£º
  Ó²Á´½Ó»á²úÉúÒ»¸öºÍÔ´ÎļþÏàͬµÄÎļþ ²»ÂÛ´óСºÍÊôÐÔ
  ɾ³ýÔ´Îļþ²»»á¶ÔÁ´½ÓÎļþ²úÉúÓ°Ïì
&nbs ......

¿í×Ö·ûÖ§³Ö£¨linux£¬MinGW£¬Qt£©


1¡£ÒªÊ¹Óÿí×Ö·ûÖ§³Ö£¬Ê¹ÓÃw¿ªÍ·µÄһϵÁж«Î÷£¬Èçwstring£¬wofstreamµÈ¡£ÔÚʹÓÃwstringµÄʱºò£¬³£Á¿×Ö·û´®Ç°ÃæÒª¼ÓÉÏL£¬ÕâÑù²ÅÄÜת»»³Éwchar_tÐ͵Ä
else if(fileName.substr(fileName.rfind(L"."))==L".prj")
2¡£Ò»¸öÎļþÁ÷£¨ÎÞÂÛÊÇofstream»¹ÊÇwofstream£©£¬Ö»Ö§³Öconst char*×÷ΪÎļþÃû£¬¶ÔÓÚ¿í×Ö·ûµÄwstringµÄÎļþÃû ......

×î¼òµ¥µÄ´°¿Ú(Gtk+ for Linux)

ÔÚLinuxÏÂʹÓÃGtk+ʵÏÖ×î¼òµ¥µÄGUI´°¿Ú£¬Ô´´úÂëÈçÏ£º
//SimpleGui.c
#include <gtk/gtk.h>
int main(int argc,char *argv[])
{
  //¶¨ÒåÒ»¸öwidget(Gtk+¹¹¼þ)£¬ÕâÀﶨÒåµÄÊÇÒ»¸ö´°¿Ú¹¹¼þ
  GtkWidget *wnd;
  //Gtk+2.0µÄ³õʼ»¯ÃüÁîÐвÎÊý£¬Ã¿Ò»¸öGtk+³ÌÐò¶¼ÒªÓÐÕâ¾ä»°
  gtk_init(& ......

Linux É豸Çý¶¯³ÌÐòâÒ¶¡½âÅ£Ö®Ò»

дÔÚÇ°ÃæµÄ»°
       Linux Device Driver ³¢ÊÔ×Å¿´Á˺ü¸±é£¬×ܸоõÀí½â²»¹»Í¸³¹£¬ºÜ¶à¶«Î÷¾­²»×¡ÎÊ£¬
²ÅÉîÉîµÄÒâʶµ½£¬Òª×ß½øºÆå«ÎÞ±ßµÄ Linux ÊÀ½ç£¬²¢²»ÊÇÒ»õí¶ø¾ÍµÄÊÂÇé¡£ÎÒ¾öÐÄ´ÓÀíÂÛµ½
ʵ¼ù£¬ÔÙÒ»´Î×ßÒ»±ßÕâ±¾Ê飬ͬʱ¼Ç¼ÏÂ×Ô¼ºµÄÐĵ㬺ʹó¼ÒÒ»Æð·ÖÏí£¬Ò»ÆðÌÖÂÛ£¬Ò»Æð½ø
²½¡£
&nb ......

Linux Çý¶¯¿ª·¢âÒ¶¡½âÅ£Ö®¶þ —— Ä£¿é±à³Ì


±¾ÎÄÊǽ¨Á¢ÔÚÇ°ÃæµÄ¿ª·¢»·¾³ÒѾ­³É¹¦½¨Á¢µÄ»ù´¡Ö®Éϵġ£Èç¹ûûÓн¨Á¢ºÃ£¬Çë²ÎÕÕ¡¶ Linux Çý¶¯¿ª·¢âÒ¶¡½âÅ£Ö®Ò» —— ¿ª·¢»·¾³µÄ½¨Á¢¡·¡£
ÒѾ­ÓкܶàÎĵµ½²ÊöÄ£¿é±à³Ì£¬¸öÈ˾õµÃ¡¶ The Linux kernel module programming guide ¡·ÊÇ×îÏ꾡µÄ¡£±¾ÎIJ»ÔÙÁ¢×ãÓÚ´ÓÀíÂÛÉÏÈ¥²ûÊöÄ£¿é±à³ÌµÄÏà¹ØÖªÊ¶£¬¶ø×ÅÖØ´Óʵ¼ùµÄ» ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ