Ads by Google

¾åµ­¤Î¹­¹ð¤Ï£±¥ö·î°Ê¾å¹¹¿·¤Î¤Ê¤¤¥Ö¥í¥°¤Ëɽ¼¨¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¿·¤·¤¤µ­»ö¤ò½ñ¤¯»ö¤Ç¹­¹ð¤¬¾Ã¤»¤Þ¤¹¡£
¥¹¥Ý¥ó¥µ¡¼¥É¥ê¥ó¥¯
-- : -- : -- | ¥¹¥Ý¥ó¥µ¡¼¹­¹ð | page top¢¬

exec²¤Î´Ø¿ô¡§¥×¥í¥»¥¹¤ÎÊÑ¿È

execl(), execlp(), execle(), execv(), execvp(), execve()¤Ï¡¢¡Öexec²¡×¤ä¡Öexec¥Õ¥¡¥ß¥ê¡¼¡×¤È¸Æ¤Ð¤ì¡¢»ØÄꤷ¤¿¿·¤·¤¤¥×¥í¥»¥¹¤Ç¸½ºß¤Î¥×¥í¥»¥¹¤òÃÖ¤­´¹¤¨¤ë¥×¥í¥»¥¹¥¤¥á¡¼¥¸¤òÃÖ¤­´¹¤¨¤ë´Ø¿ô¤Ç¤¹¡£Ê¿¤¿¤¯¸À¤¦¤È¡¢exec¤·¤¿¥×¥í¥»¥¹¡Ê¥×¥í¥°¥é¥à¡Ë¤Ï¿·¤·¤¤¥×¥í¥»¥¹¤ËÊѿȤ·¤Þ¤¹¡£

¤³¤³¤Ç¤Ï¡¢execlp()´Ø¿ô¤òÍѤ¤¤¿¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤ò¾Ò²ð¤·¤Þ¤¹¡£

#include <unistd.h>

extern char **environ;

int execlp(const char *file, const char *arg, ...);

¤³¤Î¥¨¥ó¥È¥ê¤Ë¤ÏͽÈ÷Ãμ±ÊÔ¡Ösystem´Ø¿ô¡§¿·¤·¤¤¥×¥í¥»¥¹¤ÎºîÀ®¡×¤¬Â¸ºß¤·¤Þ¤¹¤Î¤Ç¡¢Àè¤Ë¤½¤Á¤é¤ò¤´Í÷¤¤¤¿¤À¤±¤¿¤é¤È»×¤¤¤Þ¤¹¡£

#include <unistd.h>
#include <stdio.h>

int main() {
  printf("Running ps with execlp\n");
  execlp("ps", "ps", NULL);
  printf("Done.\n");
  return 0;
}

¾å¤Î¥×¥í¥°¥é¥à¤Ïexeclp()´Ø¿ô¤òÍѤ¤¤Æps¥³¥Þ¥ó¥É¤òµ¯Æ°¤¹¤ë¥×¥í¥°¥é¥à¤Ç¤¹¡£°ú¿ô¤Ë¤Ïµ¯Æ°¤¹¤ë¥Õ¥¡¥¤¥ë̾"ps"¤È²ÄÊÑŰú¿ô¤ò½ªÃ¼¤¹¤ëNULL¤òÅϤ·¤Æ¤¤¤Þ¤¹¡£

¤³¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë¤È²¼¤Î¤è¤¦¤Ê½ÐÎϤ¬ÆÀ¤é¤ì¤Þ¤¹¡£

****@ubuntu-vm:~/work/os$ ./exec_ps
Running ps with execlp
  PID TTY          TIME CMD
11588 pts/0    00:00:06 bash
15496 pts/0    00:00:01 emacs
19478 pts/0    00:00:00 ps
****@ubuntu-vm:~/work/os$

¤³¤Î½ÐÎÏ·ë²Ì¤Ë¤ÏÃíÌܤ¹¤Ù¤­ÅÀ¤¬3¤Ä¤¢¤ê¤Þ¤¹¡£

1¤Ä¤Ï¿·¤·¤¤¥·¥§¥ë¤¬µ¯Æ°¤»¤º¤Ëps¤¬¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë¤³¤È¤Ç¤¹¡£¤³¤ì¤Ïsystem()´Ø¿ô¤ÈÈæ³Ó¤·¤¿¤È¤­¤ÎÍøÅÀ¤Ç¤¢¤ê¤Þ¤¹¡£(*1)

2¤ÄÌܤÏps¤Ç½ÐÎϤµ¤ì¤ë¸½ºß²ÔÆ¯Ãæ¤Î¥×¥í¥»¥¹¤ÎÃæ¤Ë¼«Ê¬(exec_ps)¼«¿È¤¬¤¤¤Ê¤¤¤³¤È¤Ç¤¹¡£¤³¤ì¤Ï¡¢execlp()´Ø¿ô¤Çps¤ËÊѿȤ·¤Æ¤·¤Þ¤Ã¤¿¤¿¤á¤Ç¤¹¡£

¤½¤·¤Æ¡¢ºÇ¸å¤Î1¤Ä¤Ï¡¢"Done."¤¬½ÐÎϤµ¤ì¤º¤Ë¥×¥í¥°¥é¥à¤¬½ªÎ»¤·¤Æ¤¤¤ë¤³¤È¤Ç¤¹¡£¤³¤ì¤Ï¡¢¥×¥í¥°¥é¥à¤Î7¹ÔÌܤÇ"Done.\n"¤òprintf()¤¹¤ëÁ°¤Î¹Ô¤Çexeclp()¤·¤Æ¡¢ÊÌ¤Î¥×¥í¥°¥é¥à¡Ê¥×¥í¥»¥¹¡Ëps¤ËÊѿȤ·¤Æ¤·¤Þ¤Ã¤Æ¤¤¤ë¤¿¤á¤Ç¤¹¡£Êѿȸå¤Ï¥×¥í¥»¥¹¤¬´°Á´¤ËÃÖ¤­´¹¤ï¤Ã¤Æ¤·¤Þ¤¤¡¢¤â¤È¤ËÌá¤ë¤³¤È¤¬¤Ê¤¤¤¿¤á¡¢execlp()¤è¤ê²¼¤Î¹Ô¤Ï¼Â¹Ô¤µ¤ì¤Þ¤»¤ó¡£

±þÍÑ
exec²¤Î´Ø¿ô¤È¡¢¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¡Êfork()¤Ê¤É¡Ë¤òÁȤ߹ç¤ï¤»¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢°ÊÁ°¤Î¥¨¥ó¥È¥ê¡ÖUNIX¥·¥¹¥Æ¥à¥×¥í¥°¥é¥ß¥ó¥°¡Ý´Ê°×¥·¥§¥ë¤Î¼ÂÁõ¡×¤Ç¾Ò²ð¤·¤¿¤è¤¦¤Ê´Êñ¤Ê¥·¥§¥ë¤òºî¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡ª

»²¹Í¤Ë¤·¤¿ËÜ
Linux¥×¥í¥°¥é¥ß¥ó¥°¡½ÎãÂê¤Ç³Ø¤ÖUNIX¥×¥í¥°¥é¥ß¥ó¥°´Ä¶­¤Î¤¹¤Ù¤ÆLinux¥×¥í¥°¥é¥ß¥ó¥°¡½ÎãÂê¤Ç³Ø¤ÖUNIX¥×¥í¥°¥é¥ß¥ó¥°´Ä¶­¤Î¤¹¤Ù¤Æ
¥Ë¡¼¥ë ¥Þ¥·¥å¡¼ ¥ê¥Á¥ã¡¼¥É ¥¹¥È¡¼¥ó¥º Neil Matthew

¥½¥Õ¥È¥Ð¥ó¥¯¥¯¥ê¥¨¥¤¥Æ¥£¥Ö 2004-08
Çä¤ê¾å¤²¥é¥ó¥­¥ó¥° : 141253
¤ª¤¹¤¹¤áÊ¿¶Ñ

Amazon¤Ç¾Ü¤·¤¯¸«¤ë
by G-Tools

*1: system()´Ø¿ô¤Ë¤Ä¤¤¤Æ¤ÏͽÈ÷Ãμ±ÊÔ¡Ösystem´Ø¿ô¡§¿·¤·¤¤¥×¥í¥»¥¹¤ÎºîÀ®¡×¡Ë¤ò»²¾È¤·¤Æ²¼¤µ¤¤¡Ë

¥¹¥Ý¥ó¥µ¡¼¥É¥ê¥ó¥¯

¥Æ¡¼¥Þ:¥×¥í¥°¥é¥ß¥ó¥° - ¥¸¥ã¥ó¥ë:¥³¥ó¥Ô¥å¡¼¥¿ - ¥½¡¼¥·¥ã¥ë¥Ö¥Ã¥¯¥Þ¡¼¥¯: ¤³¤Îµ­»ö¤ò¥¯¥ê¥Ã¥×¡ª Yahoo!¥Ö¥Ã¥¯¥Þ¡¼¥¯¤ËÅÐÏ¿

23 : 01 : 13 | ¥×¥í¥°¥é¥ß¥ó¥°¡ÝUNIX | ¥È¥é¥Ã¥¯¥Ð¥Ã¥¯(0) | ¥³¥á¥ó¥È(0) | page top¢¬
<<ScilabĶÆþÌç Âè1²ó Scilab¤Î¥¤¥ó¥¹¥È¡¼¥ë¤È´Êñ¤Ê»È¤¤Êý | ¥Û¡¼¥à | ¼«Á³¸À¸ì¸¡º÷Powerset¤Ë¶õ¤¬ÀĤ¤Íýͳ¤òʹ¤¤¤Æ¤ß¤¿¡£>>
¥³¥á¥ó¥È

¥³¥á¥ó¥È¤ÎÅê¹Æ














´ÉÍý¼Ô¤Ë¤À¤±É½¼¨¤òµö²Ä¤¹¤ë

¥È¥é¥Ã¥¯¥Ð¥Ã¥¯
¥È¥é¥Ã¥¯¥Ð¥Ã¥¯URL
¢ªhttp://networkprogramming.blog18.fc2.com/tb.php/44-7adc3de0
¤³¤Îµ­»ö¤Ë¥È¥é¥Ã¥¯¥Ð¥Ã¥¯¤¹¤ë(FC2¥Ö¥í¥°¥æ¡¼¥¶¡¼)
| ¥Û¡¼¥à |

¥×¥í¥Õ¥£¡¼¥ë

Author:TBVector

¥×¥í¥Õ¥£¡¼¥ë

¥á¡¼¥ë¥Õ¥©¡¼¥à

µ­»ö¸¡º÷

Google

ºÇ¶á¤Îµ­»ö

¿Íµ¤¤Îµ­»ö

²áµî¤Îµ­»ö

¥«¥Æ¥´¥ê¡¼

¥¿¥°¥é¥ó¥­¥ó¥°

¥ê¥ó¥¯

ºÇ¶á¤Î¥³¥á¥ó¥È

ºÇ¶á¤Î¥È¥é¥Ã¥¯¥Ð¥Ã¥¯

¥¢¥¯¥»¥¹¥«¥¦¥ó¥¿