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

linux½ø³Ì¿ØÖÆ£­execϵÁÐ

˵ÊÇexecϵͳµ÷Óã¬Êµ¼ÊÉÏÔÚLinuxÖУ¬²¢²»´æÔÚÒ»¸öexec()µÄº¯ÊýÐÎʽ£¬execÖ¸µÄÊÇÒ»×麯Êý£¬Ò»¹²ÓÐ6¸ö£¬·Ö±ðÊÇ£º




#include <unistd.h>
int execl(const char *path, const char *arg, ...);
int execlp(const char *file, const char *arg, ...);
int execle(const char *path, const char *arg, ..., char *const envp[]);
int execv(const char *path, char *const argv[]);
int execvp(const char *file, char *const argv[]);
int execve(const char *path, char *const argv[], char *const envp[]);
ÆäÖÐÖ»ÓÐexecveÊÇÕæÕýÒâÒåÉϵÄϵͳµ÷Óã¬ÆäËü¶¼ÊÇÔÚ´Ë»ù´¡ÉϾ­¹ý°ü×°µÄ¿âº¯Êý¡£
execº¯Êý×åµÄ×÷ÓÃÊǸù¾ÝÖ¸¶¨µÄÎļþÃûÕÒµ½¿ÉÖ´ÐÐÎļþ£¬²¢ÓÃËüÀ´È¡´úµ÷Óýø³ÌµÄÄÚÈÝ£¬»»¾ä»°Ëµ£¬¾ÍÊÇÔÚµ÷Óýø³ÌÄÚ²¿Ö´ÐÐÒ»¸ö¿ÉÖ´ÐÐÎļþ¡£ÕâÀïµÄ¿ÉÖ´ÐÐÎļþ¼È¿ÉÒÔÊǶþ½øÖÆÎļþ£¬Ò²¿ÉÒÔÊÇÈκÎLinuxÏ¿ÉÖ´ÐеĽű¾Îļþ¡£
Óë
Ò»°ãÇé¿ö²»Í¬£¬execº¯Êý×åµÄº¯ÊýÖ´Ðгɹ¦ºó²»»á·µ»Ø£¬ÒòΪµ÷Óýø³ÌµÄʵÌ壬°üÀ¨´úÂë¶Î£¬Êý¾Ý¶ÎºÍ¶ÑÕ»µÈ¶¼ÒѾ­±»ÐµÄÄÚÈÝÈ¡´ú£¬Ö»ÁôϽø³ÌIDµÈһЩ±í
ÃæÉϵÄÐÅÏ¢ÈÔ±£³ÖÔ­Ñù£¬ÆÄÓÐЩÉñËÆ"ÈýÊ®Áù¼Æ"ÖеÄ"½ð²õÍÑ¿Ç"¡£¿´ÉÏÈ¥»¹ÊǾɵÄÇû¿Ç£¬È´ÒѾ­×¢ÈëÁËеÄÁé»ê¡£Ö»Óе÷ÓÃʧ°ÜÁË£¬ËüÃDzŻ᷵»ØÒ»¸ö-1£¬´Ó
Ô­³ÌÐòµÄµ÷Óõã½Ó×ÅÍùÏÂÖ´ÐС£
ÏÖÔÚÎÒÃÇÓ¦¸ÃÃ÷°×ÁË£¬LinuxÏÂÊÇÈçºÎÖ´ÐÐгÌÐòµÄ£¬Ã¿µ±Óнø³ÌÈÏΪ×Ô¼º²»ÄÜΪϵͳ
ºÍÓµ»¤×ö³öÈκι±Ï×ÁË£¬Ëû¾Í¿ÉÒÔ·¢»Ó×îºóÒ»µãÓàÈÈ£¬µ÷ÓÃÈκÎÒ»¸öexec£¬ÈÃ×Ô¼ºÒÔеÄÃæÃ²ÖØÉú£»»òÕߣ¬¸üÆÕ±éµÄÇé¿öÊÇ£¬Èç¹ûÒ»¸ö½ø³ÌÏëÖ´ÐÐÁíÒ»¸ö³ÌÐò£¬
Ëü¾Í¿ÉÒÔfork³öÒ»¸öнø³Ì£¬È»ºóµ÷ÓÃÈκÎÒ»¸öexec£¬ÕâÑù¿´ÆðÀ´¾ÍºÃÏñͨ¹ýÖ´ÐÐÓ¦ÓóÌÐò¶ø²úÉúÁËÒ»¸öнø³ÌÒ»Ñù¡£
ÊÂ
ʵÉϵڶþÖÖÇé¿ö±»Ó¦ÓõÃÈç´ËÆÕ±é£¬ÒÔÖÁÓÚLinuxרÃÅΪÆä×÷ÁËÓÅ»¯£¬ÎÒÃÇÒѾ­ÖªµÀ£¬fork»á½«µ÷Óýø³ÌµÄËùÓÐÄÚÈÝÔ­·â²»¶¯µÄ¿½±´µ½Ð²úÉúµÄ×Ó½ø³ÌÖÐ
È¥£¬ÕâЩ¿½±´µÄ¶¯×÷ºÜÏûºÄʱ¼ä£¬¶øÈç¹ûforkÍêÖ®ºóÎÒÃÇÂíÉϾ͵÷ÓÃexec£¬ÕâЩÐÁÐÁ¿à¿à¿½±´À´µÄ¶«Î÷ÓֻᱻÁ¢¿ÌĨµô£¬Õâ¿´ÆðÀ´·Ç³£²»»®Ë㣬ÓÚÊÇÈËÃÇÉè
¼ÆÁËÒ»ÖÖ"дʱ¿½±´£¨copy-on-write£©"¼¼Êõ£¬Ê¹µÃfork½áÊøºó²¢²»Á¢¿Ì¸´ÖƸ¸½ø³ÌµÄÄÚÈÝ£¬¶øÊǵ½ÁËÕæÕýʵÓõÄʱºò²Å¸´ÖÆ£¬ÕâÑùÈç¹ûÏÂÒ»Ìõ
Óï¾äÊÇexec£¬Ëü¾Í²»»á°×°××÷ÎÞÓù¦ÁË£¬Ò²¾ÍÌá¸ßÁËЧÂÊ¡£
/* exec.c */
#include <unistd.h>
main()
{
char *envp[]={"PATH=/tmp"


Ïà¹ØÎĵµ£º

½â¾öLinuxÖÐToo many open filesÎÊÌâ

1¡¢Ïà¹ØÃüÁ
ulimit –a //²é¿´µ±Ç°ÉèÖÃ
ulimit –n 2048 //¼´Éè³É2048£¬°´Êµ¼ÊÐèÒªÉèÖÃ
2¡¢Óû§»·¾³²ÎÊýÎļþÅäÖãº
ÔÚ/etc/profileÖмÓÈëÈçÏÂÄÚÈÝ£º
if
 [ $SHELL 
=
 
"
/bin/ksh
"
 ]; then 
ulimit 
-

16384
 ulimit&nbs ......

LinuxÉ豸Çý¶¯±à³ÌÖ®×èÈûÓë·Ç×èÈû

×èÈû²Ù×÷ÊÇÖ¸£¬ÔÚÖ´ÐÐÉ豸²Ù×÷ʱ£¬Èô²»ÄÜ»ñµÃ×ÊÔ´£¬Ôò½ø³Ì¹ÒÆðÖ±µ½Âú×ã¿É²Ù×÷µÄÌõ¼þÔÙ½øÐвÙ×÷¡£·Ç×èÈû²Ù×÷µÄ½ø³ÌÔÚ²»ÄܽøÐÐÉ豸²Ù×÷ʱ£¬²¢²»¹ÒÆð¡£±»¹ÒÆðµÄ½ø³Ì½øÈësleep״̬£¬±»´Óµ÷¶ÈÆ÷µÄÔËÐжÓÁÐÒÆ×ߣ¬Ö±µ½µÈ´ýµÄÌõ¼þ±»Âú×ã¡£
¡¡¡¡ÔÚLinux
¡¡¡¡¹ØÓÚÉÏÊöÀý³Ì£¬ÎÒÃDz¹³ä˵һµã£¬Èç¹û½«Çý¶¯³ÌÐòÖеÄreadº¯Êý¸ÄΪ£º
stat ......

linux»·¾³±äÁ¿²Ù×÷


ÔÚlinuxϵͳÏ£¬Èç¹ûÄãÏÂÔØ²¢°²×°ÁËÓ¦ÓóÌÐò£¬ºÜÓпÉÄÜÔÚ¼üÈëËüµÄÃû³ÆÊ±³öÏÖ“command not found”µÄÌáʾÄÚÈÝ¡£Èç¹ûÿ´Î¶¼µ½°²×°Ä¿±êÎļþ¼ÐÄÚ£¬ÕÒµ½¿ÉÖ´ÐÐÎļþÀ´½øÐвÙ×÷¾ÍÌ«·±ËöÁË¡£ÕâÉæ¼°µ½»·¾³±äÁ¿PATHµÄÉèÖÃÎÊÌ⣬¶øPATHµÄÉèÖÃÒ²ÊÇÔÚlinux϶¨ÖÆ»·¾³±äÁ¿µÄÒ»¸ö×é³É²¿·Ö¡£±¾ÎÄ»ùÓÚRedHat 9.0£¬Ïêϸ½²½âÁË»·¾ ......

linuxÅúÁ¿¸ÃÎļþÃû

A ¼Óºó׺
1.ÎÊÌ⣺ͬÒÔĿ¼ÏÂÓк£Á¿ÒÔÈÕÆÚÃüÃûµÄÎļþ£¬ÆäÖÐÓеÄÓкó׺£¬ÓеÄÒÔµã½á⣬Èç20020101.£¬20020102.£¬……£¬20020101.td£¬20020102.td……
ÒªÇó£º °ÑËùÓÐÒÔµã½áβµÄ¼ÓÉϺó׺.ts
Îҵķ½·¨£º
#£¡/bin/bash
for files in `ls *.`
do
mv $files `echo “$filests” `
done ......

linuxÃüÁîÐÐÏÂÖÐÎÄÎļþÃûÂÒÂëµÄ½â¾ö·½·¨

linuxÃüÁîÐÐÏÂÖÐÎÄÎļþÃûÂÒÂëµÄ½â¾ö·½·¨
Ê×ÏȲéѯ֧³ÖµÄ±àÂë:
locale -a
Èç¹ûûÓÐÄãÐèÒªµÄ±àÂ룬ÀýÈçzh_CN.utf8
rootÔËÐÐ: #dpkg-reconfigure locales
Ñ¡ÔñÄãÐèÒªµÄ±àÂ룬ÓÿոñÑ¡ÖУ¬¿É¶àÑ¡¡£tabÑ¡Ôñ“OK”£¬»Ø³µ¡£
ĬÈϱàÂëÑ¡Ôñzh_CN.utf8
°²×°ÄãËùÐèÒªµÄ±àÂë¡£
ÐÞ¸Ä/etc/profile,
×¢Ê͵ô
export LC ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ