[ÖØÒª]CÖÐfread()º¯ÊýµÄ·µ»ØÖµ
×î½üÓиöÏîÄ¿ÐèÒªÔÚUNIXÏÂÓÃC×ö£¬ºÜ¾ÃûÓùýCÁË£¬·¢ÏÖЩÎÊÌâÈÝÒ׸ã´í¡£
Õâ¸öÎÊÌâºÜÈÝÒ׸ã´í£¬²¢µ¼ÖºܶàÎÊÌ⣬ÐèҪǿµ÷µÄÊÇfreadº¯Êý·µ»ØµÄ²¢²»ÊÇ×Ö½ÚÊý¡£
realRead = fread(buf,item,count,fp) £¨Ã¿´Î¶Áitem´óСµÄÊý¾Ý¿é£¬·Öcount´ÎÀ´¶Á¡££©
¶øÊÇ·µ»ØµÄÊdzɹ¦ÓÐЧµÄ¶ÁÈ¡µÄitemÔªËØµÄ¸öÊý£¬¶ø³É¹¦¶ÁÈëµÄ×Ö½ÚÊýÔòÊÇrealRead * sizeof(item)
Ò»°ã˵À´realRead ÊÇСÓÚcountµÄ£¬ºÜÇɵÄÇé¿ö¾Í¸ÕºÃΪcount.³ý·ÇÎļþ´óС¸ÕºÃΪitem´óСµÄÕûÊý±¶¡£
·µ»ØµÄÊÇÕæÊµ¶ÁÈëitemÔªËØµÄ¸öÊý£¬ËäÈ»¶ÁÁËcount´Î£¬µ«ÊÇÕæÕý¶Áµ½µÄÓÐЧ¸öÊýΪrealRead¸ö
ÕæÊµ¶ÁÈë×Ö½ÚÊý¾ÍΪrealRead*sizeof(item)
RETURN VALUE
fread and fwrite return the number of items successfully read or written (i.e., not the number of
characters). If an error occurs, or the end-of-file is reached, the return value is a short item
count (or zero).
fread does not distinguish between end-of-file and error, and callers must use feof(3) and ferror(3)
to determine which occurred.
fread£¨´ÓÎļþÁ÷¶ÁÈ¡Êý¾Ý£©
±íÍ·Îļþ #include<stdio.h>
¶¨Ò庯Êý size_t fread(void * ptr,size_t size,size_t count,FILE * stream);
º¯Êý˵Ã÷ fread()ÓÃÀ´´ÓÎļþÁ÷ÖжÁÈ¡Êý¾Ý¡£²ÎÊýstreamΪÒÑ´ò¿ªµÄÎļþÖ¸Õ룬²ÎÊýptr Ö¸ÏòÓû´æ·Å¶ÁÈ¡½øÀ´µÄÊý¾Ý¿Õ¼ä£¬¶ÁÈ¡µÄ×Ö½ÚÊýÒÔ²ÎÊýsize*countÀ´¾ö¶¨¡£
Fread()»á·µ»ØÊµ¼Ê¶ÁÈ¡µ½µÄcountÊýÄ¿£¬Èç¹û´ËÖµ±È²ÎÊýcountÀ´µÃС£¬Ôò´ú±í¿ÉÄܶÁµ½ÁËÎļþβÁË»òÕßÓдíÎó·¢Éú(ǰÕß¼¸ÂÊ´ó)£¬Õâʱ±ØÐëÓÃfeof()»òferror()À´¾ö¶¨·¢ÉúʲôÇé¿ö¡£
·µ»ØÖµ ·µ»ØÊµ¼Ê¶ÁÈ¡µ½µÄcountÊýÄ¿¡£
fread·µ»ØµÄ²»ÊÇ×Ö½ÚÊý£¬
µ±ÇÒ½öµ±ÏÂÃæÕâôÓõÄʱºò£¬·µ»ØÖµ²ÅÊÇ×Ö½ÚÊý£¨µ±È»ÒòΪǡºÃÒ»¸öÊý¾Ý¿é´óСΪ1¸ö×Ö½Ú£¬Ï൱ÓÚrealRead*1£©
char buff[size];
FILE *fp;
...
realRead = fread(buff, 1, size, fp);
...
Èç¹ûÊÇ: fread(buff, size, 1, fp)
·
Ïà¹ØÎĵµ£º
ͨÓú¯Êý¿âÔÚÍ·Îļþstdlib.hÖÐÉùÃ÷£¬±È½ÏÅÓ´ó£¬Ö÷Òª·ÖΪÒÔϼ¸´óÀࣺ´æ´¢·ÖÅä¡¢Ëæ»úÊýÉú³É¡¢Êý×Öת»»ÓëÕûÐÍÔËËã¡¢³ÌÐòÍ˳öÓë»·¾³Í¨ÐÅ¡¢ËÑË÷ÓëÅÅÐò¡¢¶à×Ö½ÚÓë¿í×Ö·ûµÄת»»¡£ÓÉÓÚ¼³¼°µ½´æ´¢·ÖÅä¡¢»·¾³Í¨Ðŵȣ¬Òò´ËËüÃǵĴó¶àÊýÒ²ÒÀÀµÓÚ²Ù×÷ϵͳ¡£glibcÖУ¬Í¨Óú¯Êý¿âµÄºËÐÄʵÏÖÔÚstdlibºÍmallocÁ½¸öĿ¼Ï ......
½ñÌìÈ¥ÃæÊÔÒ»¼Ò¹«Ë¾£¬ÌîÁËÒ»·Ý“»§¿Úµ÷²é”£¬È»ºó¾ÍÊÇ×öÒ»·ÝÃæÊÔÌ⣬ÌâÄ¿ºÜ¼òµ¥
1¡¢¸Ä´íÌ⣬¸øÒ»¶Î³ÌÐò£¬Ö¸³ö´íÎó
2¡¢Socket×èÈûºÍ·Ç×èÈû±à³Ì£¬·Ç×èÈûµÄʵÏÖÔÀí
3¡¢TCP/IPÓëOSIÆß²ãÄ£ÐÍ
TCP/IP²Î¿¼Ä£Ð͹²ÓÐÎå²ã£ºÓ¦Óò㡢´«Êä²ã¡¢»¥ÁªÍø²ãºÍÖ÷»úÖÁÍøÂç²ã¡£
ÓëOSI²Î¿¼Ä£ÐÍÏà±È£¬TCP/IP²Î¿¼Ä£ÐÍûÓбíʾ²ãºÍ» ......
extern "C"
¡¡¡¡extern "C" °üº¬Ë«Öغ¬Ò壬´Ó×ÖÃæÉϼ´¿ÉµÃµ½£ºÊ×ÏÈ£¬±»ËüÐÞÊεÄÄ¿±êÊÇ“extern”µÄ£»Æä´Î£¬±»ËüÐÞÊεÄÄ¿±êÊÇ“C”µÄ¡£ÈÃÎÒÃÇÀ´Ïêϸ½â¶ÁÕâÁ½Öغ¬Òå¡£
¡¡¡¡£¨1£© ±»extern "C"ÏÞ¶¨µÄº¯Êý»ò±äÁ¿ÊÇexternÀàÐ͵ģ»
¡¡¡¡externÊÇC/C++ÓïÑÔÖбíÃ÷º¯ÊýºÍÈ«¾Ö±äÁ¿×÷Ó÷¶Î§£¨¿É¼ûÐÔ£©µÄ¹Ø¼ü×Ö£ ......
ÔÚservletÀïÉèÖÃÁËÊôÐÔÖµ request.setAttribute("MENU", menu);
doPost()»òÕßdoGet()Àï×öÌø×ª£º
´úÂë
getServletConfig().getServletContext().getRequestDispatcher(
mainpage).forward(request, response);
ÔÚmainpageÒ³ÃæÖ±½Ó»ñÈ¡¿ÉÒÔÓà request.getAttribute("MENU");
ÈôÓÃJSTL´úÂëΪ ......
×î½üÒòΪÑо¿Ò»¸ö¶«Î÷£¬²¢ÇÒÔںܾÃÒÔǰ¾ÍÏë°ÑpythonºÃºÃ¿´¿´¡£ÕýºÃÂú×ãÎ񵀼̮æÐÄ¡£ÎÒÿÌìÉϰà×öµÃÓÎÏ·¶¼ÊÇÓÃlua£¬Ò²ÊÇÒ»ÃźÜÇ¿´óµÄ½Å±¾ÓïÑÔ¡£¿ÉÄÜÎÒ¸üϲ»¶pythonµÄËõ½øÇø·ÖºÍÃæÏò¶ÔÏó°É¡£ ½ñÌìֻдһ¸ö¼òµ¥µÄÀý×Ó¡£Ò»¸ö¼òµ¥µÄpython½Å±¾£¬¾ÍÒ»¸öº¯Êý£¬ÓÃC/C++È¥µ÷Ó᣿ÉÄÜÕâÒ²ÊÇ×÷Ϊ³ÌÐòÀ´Ëµ×î¹ØÐĵÄÒ»¼þÊ¡£ËùÒÔÎÒµÄpytho ......