¹ØÓÚ linux ÖÐ iconv() º¯Êý µÄÎÊÌâ
×î½üÔÚдspider ÐèÒªÒª½â¾ö ±àÂëת»» ÎÊÌâ Óõ½ iconv() º¯Êý
µ«Ò²²»ÖªµÀ ÄÄÀïÓÐÎÊÌâ ÀÏÊÇÕû²»³öÀ´ ÄÄλ´óÏÀ °ï°ïæ
´úÂë ÈçÏ£º£¨Í·Îļþû¸´ÖÆ£©
//CodeConvert.cpp
#include "CodeConvert.h"
#include "stdlib.h"
#include <string.h>
#include <errno.h>
CCodeConv::CCodeConv(const char *from_charset,const char *to_charset)
{
cd=iconv_open(to_charset,from_charset);
if( cd== (iconv_t) -1 )
{
cout < <"cannot open iconv discripter!" < <endl;
iconv_close(cd);
exit(0);
}
}
CCodeConv::~CCodeConv()
{
iconv_close(cd);
}
bool CCodeConv::Convert(char *inbuf,long inlen,char *outbuf,long outlen)
{
char **pin=&inbuf;
char **pout=&outbuf;
memset(outbuf,0,outlen);
if( -1==iconv(cd,pin,(size_t *)&inlen,pout,(size_t *)&outlen) )
{
cout < <"have error in iconv()!" < <endl;
cout < <errno < <" " < <strerror(errno) < <endl;
return false;
}
return true;
}
#include "CodeConvert.h"
#include <string.h>
int main()
{
char *in="Íõ";
Ïà¹ØÎÊ´ð£º
Ä¿±ê£ºµ±ÍøÂçÖÐÓÐÊý¾Ýµ½´ï»òÕß³¬Ê±£¬³ÌÐò½øÈëÏÂÒ»´ÎÑ»·¡£
ÎÊÌ⣺select()º¯Êý²»Æð×÷Ó㬳ÌÐò²»»áÔÚselectµÄµØ·½×èÈûÒ»Ã룬²¢ÇÒµ±ÍøÂçÉÏÓÐÊý¾ÝµÄʱºò£¬selectµÄ·µ»ØÖµÈÔȻСÓÚ0
#include <s ......
ÎÒÔÚlinuxÏÂдÁ˸öUDPµÄserverºÍclientµÄ´úÂ룬
ÏÖÔÚ³öÁËÕâÑùÒ»¸öÎÊÌ⣬
serverÊÕµ½ÁËclientµÄÊý¾Ý£¬²¢»Ø¸´ÁË£¬µ«ÊÇclientÒ»Ö±ÊÕ²»µ½server»Ø¸´µÄÄÚÈÝ£¬£¬ºóÀ´ÎÒÓÃ×¥°ü¹¤¾ß½¨Á¢ÁËÒ»¸öserverÀ´Á¬½Ó֮ǰµÄcl ......
ÕâÀï¿´²»¶®¡£¡£
ÓÐÕâ¸öÃüÁîÂð£¿
type d
ÊÔÊÔ¿´ÊDz»ÊDZðÃû»òÊǺ¯ÊýÃû
ÕâÊÇÔÚcygwinÏÂÔËÐе쬻¹ÊÇ¿´²»Ã÷°×¡£
ÊäÈëÁË type d ÒÔºó±ä³ÉÕâÑù£º
¿´²»µ½Í¼Æ¬
ûÓÐÕâ¸öÃüÁÊDz»ÊÇÒ»¸ö ......
¾ÍÊÇ˵ÏÖÔÚÊÇwindowsÏ ÎÒ°ÑÒ»¸ö·ÖÇøÌÚ³öÀ´ÁË µ«ÊÇÓùâÅ̰²×°linuxµÄʱºòʶ±ð²»ÁË ÄǸÃÔõÑù°Ñ´ÅÅ̵ĸñʽת»»ÎªlinuxÄÜʶ±ð³öµÄ?
ÓÐÈËÕâÑù»Ø´ð
(
°Ñ·ÖÇøÉ¾³ý£¬È»ºóÓÃLinux°²×°Å̸ñʽ»¯³ ......
ÔÚ³ÌÐòÖе÷ÓÃchroot("/mnt");ºó ÎÒÏëÔÙת»Øchroot("/"); Õâ¸öʱºò²»ÄÜÔÙת»ØÏµÍ³¸ùĿ¼»·¾³ÁË Ó¦¸ÃÔõô×ö£¿£¿
chroot()Ö´Ðгɹ¦Ö®ºó£¬¸ùĿ¼ÊǽøÐÐÁËÇл»£¬µ«Êǵ±Ç°¹¤×÷Ŀ¼ûÓб仯£¬»¹ÊÇchro ......