PTRACE

Section: ¸®´ª½º ÇÁ·Î±×·¡¸Ó ¸Å´º¾ó (2)
Updated: 1999³â 11¿ù 7ÀÏ
Index
Return to Main Contents
 

À̸§

ptrace - ÇÁ·Î¼¼½º ÃßÀû  

»ç¿ë¹ý

#include <sys/ptrace.h>

long int ptrace(enum __ptrace_request request, pid_t pid, void * addr, void * data)  

¼³¸í

ptrace ½Ã½ºÅÛ ÄÝÀº ºÎ¸ð ÇÁ·Î¼¼½º°¡ ´Ù¸¥ ÇÁ·Î¼¼½ºÀÇ ½ÇÇàÀ» °üÂûÇϰųª Á¦¾îÇÏ´Â ¼ö´ÜÀ» Á¦°øÇÑ´Ù. ±×¸®°í ÇØ´ç ÇÁ·Î¼¼½ºÀÇ ÄÚ¾î À̹ÌÁö¿Í ·¹Áö½ºÅ͵éÀ» °Ë»çÇÏ°í ¹Ù²Ü¼ö ÀÖ´Â ¼ö´Üµµ Á¦°øÇÑ´Ù. ÀÌ ÇÔ¼ö´Â ¿ì¼± breakpoint µð¹ö±ë°ú ½Ã½ºÅÛ ÄÝ ÃßÀûÀ» ¼öÇàÇϴµ¥ »ç¿ëµÈ´Ù.

ºÎ¸ð ÇÁ·Î¼¼½º´Â fork(2)¸¦ È£ÃâÇÏ¿© ÃßÀûÀ» ½ÃÀÛÇÒ¼ö ÀÖÀ¸¸ç exec(2)´ÙÀ½¿¡ (ÀüÇüÀûÀ¸·Î) PTRACE_TRACEME¸¦ ÇÏ´Â °á°ú ÀÚ½Ä ÇÁ·Î¼¼½º¸¦ °¡Áú¼ö ÀÖ´Ù. ¼±ÅÃÀûÀ¸·Î, ºÎ¸ð ÇÁ·Î¼¼½º´Â PTRACE_ATTACH¸¦ »ç¿ëÇÏ¿© Á¸ÀçÇÏ´Â ÇÁ·Î¼¼½ºÀÇ ÃßÀûÀ» ½ÃÀÛÇÒ¼ö ÀÖ´Ù.

ÇÁ·Î¼¼½º¸¦ ÃßÀûÇÏ´Â µ¿¾È, ºñ·Ï ½ÅÈ£°¡ ¹«½ÃµÈ´Ù ÇÒÁö¶óµµ ½ÅÈ£°¡ µµÂøÇÒ¶§¸¶´Ù ÀÚ½Ä ÇÁ·Î¼¼½º´Â ¸ØÃâ°ÍÀÌ´Ù. (¿¹¿Ü´Â SIGKILLÀ̸ç ÀÌ ½ÅÈ£´Â ÀÚ½ÅÀÇ ¿ø·¡ È¿°ú¸¦ °¡Áø´Ù.) ºÎ¸ð ÇÁ·Î¼¼½º´Â ´ÙÀ½ wait(2)¿¡¼­ ÀÎ½ÄµÇ¸ç ¸ØÃß´Â µ¿¾È ÀÚ½Ä ÇÁ·Î¼¼½º¸¦ ¼öÁ¤ ÇÑ´Ù. ±×¸®°í ºÎ¸ð ÇÁ·Î¼¼½º´Â ÀÚ½Ä ÇÁ·Î¼¼½º°¡ °è¼ÓÇϵµ·Ï ¾ß±âÇÏ¸ç ¿É¼ÇÀ¸·Î Àü´ÞµÈ ½ÅÈ£¸¦ ¹«½ÃÇÒ¼ö ÀÖ´Ù.(¶Ç´Â ´Ù¸¥ ½ÅÈ£°¡ ´ë½Å Àü´ÞµÈ´Ù ÇÒÁö¶óµµ)

ºÎ¸ð ÇÁ·Î¼¼½º°¡ ÃßÀûÀ» ¸¶Ä¥¶§, ºÎ¸ð´Â PTRACE_KILL¸¦ °¡Áø ÀÚ½Ä ÇÁ·Î¼¼½º¸¦ Á¾·á½ÃÅ°°Å³ª PTRACE_DETACH¸¦ ÅëÇØ ÃßÀûÀ» ¾ÈÇÏ´Â ¸ðµå¿¡¼­ º¸Åë ½ÇÇàÀ» °è¼ÓÇϵµ·Ï ÇÑ´Ù.

requestÀÇ °ªÀº ÇàÇØÁ®¾ßÇÒ ÇൿÀ» °áÁ¤ÇÑ´Ù:

PTRACE_TRACEME
ÀÌ ÇÁ·Î¼¼½º´Â ÀÌ ÇÁ·Î¼¼½ºÀÇ ºÎ¸ð¿¡ ÀÇÇØ ÃßÀûµÇ¾î Áø´Ù´Â°ÍÀ» °¡¸®Å²´Ù. ÀÌ ÇÁ·Î¼¼½º¿¡ Àü´ÞµÈ ½ÅÈ£(SIGKILLÀ» Á¦¿Ü)´Â ÇÁ·Î¼¼½º ÃßÀûÀ» ¸ØÃß°í ºÎ¸ð ÇÁ·Î¼¼½º°¡ wait¸¦ ÀνÄÇϵµ·Ï ¾ß±âÇÑ´Ù. ¶ÇÇÑ, ÀÌ ÇÁ·Î¼¼½º¿¡ ÀÇÇØ execµÇ´Â ¸ðµç ¿¬¼ÓÀûÀÎ ÄݵéÀº »õ·Î¿î ÇÁ·Î±×·¥ÀÌ ½ÇÇàÇϱâ Àü¿¡ Á¦¾î¸¦ ¾òÀ» ±âȸ¸¦ º¸¸ð ÇÁ·Î¼¼½º¿¡°Ô ÁÖ±â À§ÇØ SIGTRAPÀ» ¾ß±âÇÑ´Ù. ÇÁ·Î¼¼½º´Â ºÎ¸ð ÇÁ·Î¼¼½º°¡ ÃßÀûÀ» ±â´ëÇÏÁö ¾Ê´Â´Ù¸é ÀÌ·± ¿ä±¸(request)¸¦ ¸¸µé¾î¼­´Â ¾ÈµÈ´Ù.(pid, addr, ±×¸®°í data ´Â ¹«½ÃµÈ´Ù.)

À§ÀÇ request´Â ÀÚ½Ä ÇÁ·Î¼¼½º¿¡ ÀÇÇؼ­¸¸ »ç¿ëµÈ´Ù.; ³ª¸ÓÁö´Â ºÎ¸ð¿¡ ÀÇÇؼ­¸¸ »ç¿ëµÈ´Ù. ´ÙÀ½ request µéÁß¿¡, pid´Â ÀÛµ¿ÇÏ´Â ÀÚ½Ä ÇÁ·Î¼¼½º¸¦ °¡¸®Å²´Ù. PTRACE_KILL¿Ü ´Ù¸¥ requestµéÀ» À§Çؼ­ ÀÚ½Ä ÇÁ·Î¼¼½º´Â ¸ØÃß¾îÁ®¾ß ÇÑ´Ù.

PTRACE_PEEKTEXT, PTRACE_PEEKDATA
ÀÚ½Ä ÇÁ·Î¼¼½º ¸Þ¸ð¸®ÀÇ addrÀ§Ä¡ÀÇ ¿öµå(word)¸¦ Àаí ptrace ÄÝÀÇ °á°ú·Î½á ¿öµå¸¦ ¹ÝȯÇÑ´Ù. ¸®´ª½º´Â text¿Í data ÁÖ¼Ò °ø°£À» ºÐ¸®ÇÏÁö ¾Ê´Â´Ù. ±×·¡¼­ µÎ°³ÀÇ request´Â ÇöÀç °°´Ù.(data´Â ¹«½ÃµÈ´Ù.)

PTRACE_PEEKUSER
·¹Áö½ºÅÍ¿Í ÇÁ·Î¼¼½º¿¡ °üÇÑ ´Ù¸¥ Á¤º¸¸¦ °¡Áö°í ÀÖ´Â ÀÚ½Ä ÇÁ·Î¼¼½ºÀÇ USER °ø°£¿¡ ÀÖ´Â º¯À§ addr ÀÇ ¿öµå¸¦ Àд´Ù. (<linux/user.h> ¿Í <sys/user.h> ¸¦ ÂüÁ¶Çضó.) word´Â ptrace ½Ã½ºÅÛ ÄÝÀÇ °á°ú·Î½á ¹ÝȯµÈ´Ù. ÀüÇüÀûÀ¸·Î º¯À§´Â ¾ÆÅ°ÅØÃÄ¿¡ ÀÇÇØ ¹Ù²ï´Ù ÇÒÁö¶óµµ, ¿öµå-Á¤·ÄÀ̾î¾ß ÇÑ´Ù. (data´Â ¹«½ÃµÈ´Ù.)

PTRACE_POKETEXT, PTRACE_POKEDATA
ºÎ¸ð ÇÁ·Î¼¼½º ¸Þ¸ð¸®¿¡ ÀÖ´Â À§Ä¡ data¿¡¼­ ÀÚ½Ä ÇÁ·Î¼¼½º ¸Þ¸ð¸®¿¡ ÀÖ´Â À§Ä¡ addrÀ¸·Î word¸¦ º¹»çÇÑ´Ù. À§Ã³·³, µÎ request´Â ÇöÀç °°´Ù.
PTRACE_POKEUSER

ºÎ¸ð ÇÁ·Î¼¼½º ¸Þ¸ð¸®¿¡ ÀÖ´Â À§Ä¡ data¿¡¼­ ÀÚ½Ä ÇÁ·Î¼¼½ºÀÇ addr USER ¿µ¿ªÀ¸·Î word¸¦ º¹»çÇÑ´Ù. À§Ã³·³, º¯À§´Â ÀüÇüÀûÀ¸·Î ¿öµå-Á¤·ÄÀ̾î¾ß ÇÑ´Ù. Ä¿³ÎÀÇ ¹«°á¼ºÀ» À¯ÁöÇϱâ À§ÇØ, USER ¿µ¿ª¿¡ ´ëÇÑ ¼öÁ¤Àº Çã¿ëµÇÁö ¾Ê´Â´Ù.

PTRACE_GETREGS, PTRACE_GETFPREGS
ÀÚ½Ä ÇÁ·Î¼¼½ºÀÇ ¹ü¿ë ¶Ç´Â ºÎµ¿ ¼Ò¼öÁ¡ ·¹Áö½ºÅ͵éÀ» °¢°¢ ºÎ¸ð ÇÁ·Î¼¼½ºÀÇ data À§Ä¡·Î º¹»çÇÑ´Ù. ÀÌ µ¥ÀÌÅÍÀÇ Æ÷¸Ë¿¡ °üÇÑ Á¤º¸¸¦ À§Çؼ­´Â <linux/user.h>¸¦ ÂüÁ¶Çضó. (addr´Â ¹«½ÃµÈ´Ù.)

PTRACE_SETREGS, PTRACE_SETFPREGS
ºÎ¸ð ÇÁ·Î¼¼½ºÀÇ data À§Ä¡¿¡¼­ ÀÚ½Ä ÇÁ·Î¼¼½ºÀÇ ¹ü¿ë ¶Ç´Â ºÎµ¿ ¼Ò¼öÁ¡ ·¹Áö½ºÅ͵éÀ» °¢°¢ º¹»çÇÑ´Ù. PTRACE_POKEUSER ó·³, ¸î¸î ¹ü¿ë ·¹Áö½ºÅÍ ¼öÁ¤Àº Çã¿ëµÇÁö ¾Ê´Â´Ù.(addr´Â ¹«½ÃµÈ´Ù.)

PTRACE_CONT
ÁßÁöµÈ ÀÚ½Ä ÇÁ·Î¼¼½º¸¦ ´Ù½Ã ½ÃÀÛÇÑ´Ù. ¸¸ÀÏ data°¡ 0µµ SIGSTOPµµ ¾Æ´Ï¶ó¸é, ÀÌ°ÍÀº ÀڽĿ¡°Ô Àü´ÞµÇ¾î¾ß ÇÏ´Â ½ÅÈ£·Î½á Çؼ®µÈ´Ù.; ±×·¸Áö ¾ÊÀ¸¸é, ¾î¶² ½ÅÈ£µµ Àü´ÞµÇÁö ¾Ê´Â´Ù. ¿¹¸¦ µé¾î, ºÎ¸ð ÇÁ·Î¼¼½º´Â ÀڽĿ¡°Ô º¸³»Áø ½ÅÈ£°¡ Àü´ÞµÉÁö ¾Æ´ÒÁö¸¦ Á¦¾îÇÒ¼ö ÀÖ´Ù.(addr´Â ¹«½ÃµÈ´Ù.)

PTRACE_SYSCALL, PTRACE_SINGLESTEP
PTRACE_CONTó·³ ÁßÁöµÈ ÀÚ½ÄÀÇ ÇÁ·Î¼¼½º¸¦ ´Ù½Ã ½ÃÀÛÇÑ´Ù. ±×·¯³ª ÀÚ½ÄÀ» ´ÙÀ½ ¿£Æ®¸®¿¡¼­ ÁßÁöÇϵµ·Ï Àç¹è¿­ Çϰųª ½Ã½ºÅÛ ÄÝ¿¡¼­ Á¾·áÇϰųª ´ÜÀÏ ¸í·É¾î ½ÇÇàÈÄ¿¡ Á¾·áÇÑ´Ù.(º¸Åëó·³, ÀÚ½ÄÀº ¶ÇÇÑ ½ÅÈ£¸¦ ¹Þ´Â Áï½Ã Á¾·áÇÑ´Ù.) ºÎ¸ð ÇÁ·Î¼¼½ºÀÇ °üÁ¡¿¡¼­, ÀÚ½Ä ÇÁ·Î¼¼½º´Â SIGTRAPÀ» ¹Þ¾Æ Á¾·áµÈ°Íó·³ º¸ÀÏ °ÍÀÌ´Ù. ¿¹¸¦ µé¾î PTRACE_SYSCALL¸¦ À§ÇÑ »ý°¢Àº óÀ½ ÁßÁö½Ã ½Ã½ºÅÛ ÄÝÀ» À§ÇÑ ÀÎÀÚµéÀ» Á¶»çÇÏ°í ±×¸®°í ´Ù¸¥ PTRACE_SYSCALLÀ» ÇÏ°í µÎ¹ø° ÁßÁö½Ã¿¡ ½Ã½ºÅÛ ÄÝÀÇ ¹Ýȯ°ªÀ» Á¶»çÇÏ´Â °ÍÀÌ´Ù.(addr´Â ¹«½ÃµÈ´Ù.)

PTRACE_KILL
Á¾·áÇϵµ·Ï Çϱâ À§ÇØ SIGKILLÀ» ÀڽĿ¡°Ô º¸³½´Ù.(addr¿Í data´Â ¹«½ÃµÈ´Ù.)

PTRACE_ATTACH
pid·Î ÁöÁ¤µÈ ÇÁ·Î¼¼½º¿¡ ºÎÂø½ÃÅ°°í, ÇöÀç ÇÁ·Î¼¼½ºÀÇ "child"¸¦ ÃßÀûÇϵµ·Ï ¸¸µç´Ù.; ÀÚ½Ä ÇÁ·Î¼¼½ºÀÇ ÇൿÀº ¸¶Ä¡ PTRACE_TRACEME°¡ Çϴ°Íó·³ ÀÌ´Ù. ½ÇÁ¦·Î ÇöÀç ÇÁ·Î¼¼½º´Â ´ëºÎºÐÀÇ ¸ñÀûÀ» À§ÇØ ÀÚ½Ä ÇÁ·Î¼¼½ºÀÇ ºÎ¸ð°¡ µÈ´Ù. (Áï, ÀÚ½Ä À̺¥Æ®ÀÇ ÅëÁö¸¦ ¹ÞÀ¸¸ç ÀÚ½ÄÀÇ ºÎ¸ðó·³ ps(1)¿¡ ³ªÅ¸³­´Ù.) ±×·¯³ª ÀڽĿ¡ ÀÇÇÑ getpid(2)´Â ¿©ÀüÈ÷ ¿ø·¡ ºÎ¸ðÀÇ pid¸¦ ¹ÝȯÇÑ´Ù. ÀÚ½ÄÀº SIGSTOPÀ» º¸³»Áö¸¸, ÀÌ ½Ã½ºÅÛ ÄÝ¿¡ ÀÇÇØ ÁßÁöµÉ ÇÊ¿ä´Â ¾ø´Ù.; ÀÚ½ÄÀÌ ÁßÁöµÇ´Â°ÍÀ» ±â´Ù¸®±â À§ÇØ wait¸¦ »ç¿ëÇضó. (addr ±×¸®°í data ´Â ¹«½ÃµÈ´Ù.)

PTRACE_DETACH
PTRACE_CONTó·³ ÁßÁöµÈ ÀÚ½ÄÀ» ´Ù½Ã ½ÃÀÛÇÑ´Ù. ±×·¯³ª ¿ì¼± ÇÁ·Î¼¼½º¿¡¼­ ºÐ¸®ÇÏ°í PTRACE_ATTACHÀÇ Àç ºÎ¸ðÈ­ È¿°ú¿Í PTRACE_TRACEMEÀÇ °á°ú¸¦ ¿ø·¡´ë·Î µÇµ¹¸°´Ù. ºñ·Ï ÀǵµÇÏÁö ¾Ê¾Ò´Ù ÇÒÁö¶óµµ, ¸®´ª½º¿¡¼­ ÃßÀûµÇ´Â ÀÚ½ÄÀº ÃßÀûÀ» ½ÃÀÛÇÒ¶§ »ç¿ëµÈ ¹æ¹ý¿¡ °ü°è¾øÀÌ ÀÌ ¹æ½ÄÀ¸·Î ºÐ¸®µÉ¼ö ÀÖ´Ù.(addr´Â ¹«½ÃµÈ´Ù.)

 

ÁÖÀÇ

ptrace ÀÇ ÀÎÀÚ°¡ ÁÖ¾îÁø ¿øÇü¿¡ µû¶ó Çؼ®µÊ¿¡µµ ºÒ±¸ÇÏ°í, GNU libc´Â ÇöÀç requestÀÎÀÚ¸¸ÀÌ °íÁ¤µÈ °¡º¯ ÇÔ¼ö·Î½á ptrace ¸¦ ¼±¾ðÇÑ´Ù. ÀÌ°ÍÀº ºñ·Ï ¹®¼­È­µÇÁö ¾ÊÀº gcc(1) ÇൿÀ» »ç¿ëÇÑ´Ù ÇÒÁö¶óµµ ºÒÇÊ¿äÇÑ ÃßÀû ÀÎÀÚµéÀº »ý·«Çß´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù.

pid 1ÀÎ ÇÁ·Î¼¼½º init(8)´Â ÃßÀûµÇÁö ¾Ê´Â´Ù.

¸Þ¸ð¸® ³»¿ë°ú USER ¿µ¿ªÀÇ ¹èÄ¡´Â OS¿Í ¾ÆÅ°ÅØÃÄ¿¡ µû¶ó Äè ´Ù¸£´Ù.

"word"ÀÇ Å©±â´Â OS¿¡ ÀÇÇØ °áÁ¤µÈ´Ù.(Áï, 32-bit ¸®´ª½º¿¡¼­ word´Â 32 bitsÀÌ´Ù.)

ÃßÀûÀº ÃßÀûµÇ´Â ÇÁ·Î¼¼½ºÀÇ Àǹ̷п¡¼­ ¾à°£ÀÇ ¹Ì¹¦ÇÑ Â÷À̸¦ ¾ß±âÇÑ´Ù. ¿¹¸¦ µé¾î, ¸¸ÀÏ ÇÁ·Î¼¼½º°¡ PTRACE_ATTACH·Î ºÎÂøµÈ´Ù¸é ÀÌ ÇÁ·Î¼¼½ºÀÇ ¿ø·¡ ºÎ¸ð ÇÁ·Î¼¼½º´Â ´õÀÌ»ó ÀÌ ÇÁ·Î¼¼½º°¡ ¸ØÃ⶧ wait¸¦ ÅëÇØ Áö½Ã¸¦ ¹ÞÀ»¼ö ¾ø´Ù. ±×¸®°í »õ ºÎ¸ð ÇÁ·Î¼¼½º°¡ È¿°úÀûÀ¸·Î ÀÌ Áö½Ã¸¦ ¹ÞÀ» ¹æ¹ýµµ ¾ø´Ù.

ÀÌ ÆäÀÌÁö´Â ptrace ÄÝÀÌ ÇöÀç ¸®´ª½º¿¡¼­ ÀÛµ¿µÇ´Â ¹æ¹ýÀ» ¹®¼­È­ Çß´Ù. ÀÌ ÇÔ¼öÀÇ ÇൿÀº UnixÀÇ ¼ºÇâ¿¡ µû¶ó »ó´çÈ÷ ´Ù¸£´Ù. ¾î¶² °æ¿ì, ptrace ÀÇ »ç¿ëÀº OS¿Í ¾ÆÅ°ÅØÃÄ¿¡ ¸Å¿ì ÀÇÁ¸ÀûÀÌ´Ù.

SunOS ¸Ç ÆäÀÌÁö´Â "À¯ÀÏÇÏ°í ¾Ö¸ÅÇÑ"À̶ó°í ptrace ¸¦ ±â¼úÇÑ´Ù. Solaris 2¿¡ ÀÖ´Â proc-±â¹Ý µð¹ö±ë ÀÎÅÍÆäÀ̽º´Â ´õ °­·ÂÇÏ°í ÀϹÝÀûÀÎ ptrace ±â´ÉÀ» ¼öÇàÇÑ´Ù.

 

¹Ýȯ°ª

¼º°ø½Ã, PTRACE_PEEK* requestµéÀº ´Ù¸¥ requestµéÀÌ 0À» ¹ÝȯÇÏ´Â µ¿¾È¿¡ ¿ä±¸µÈ µ¥ÀÌÅ͸¦ ¹ÝȯÇÑ´Ù. ½ÇÆнÃ, ¸ðµç requestµéÀº -1À» ¹ÝȯÇϸç errno(3)´Â Àû´çÇÑ °ªÀ¸·Î ¼³Á¤µÈ´Ù. PTRACE_PEEK* request°¡ ¼º°ø½Ã ¹ÝȯµÇ´Â °ªÀÌ -1Àϼöµµ Àֱ⠶§¹®¿¡, È£ÃâÀÚ´Â request ÈÄ¿¡ ¿¡·¯°¡ ¹ß»ýÇß´ÂÁö ¾Æ´ÑÁö¸¦ °áÁ¤Çϱâ À§ÇØ errno ¸¦ °Ë»çÇØ¾ß ÇÑ´Ù.

 

¿¡·¯

EPERM
ÁöÁ¤µÈ ÇÁ·Î¼¼½º´Â ÃßÀûµÉ¼ö ¾ø´Ù. ÀÌ°ÍÀº ºÎ¸ð ÇÁ·Î¼¼½º°¡ ÃæºÐÇÑ ¿ì¼±±ÇÀ» °¡Áö°í ÀÖÁö ¾Ê±â ¶§¹®ÀÌ´Ù; ºñ-·çÆ® ÇÁ·Î¼¼½ºµéÀº ½ÅÈ£¸¦ º¸³¾¼ö ¾ø°Å³ª setuid/setgid·Î µ¹¾Æ°¡´Â ÇÁ·Î±×·¥ÀÇ ÇÁ·Î¼¼½ºµéÀ» ÃßÀûÇÒ¼ö ¾ø´Ù. ¼±ÅÃÀûÀ¸·Î, ÇÁ·Î¼¼½º°¡ ÀÌ¹Ì ÃßÀûµÇ°í Àְųª initÀÌ´Ù. (pid 1).
ESRCH
ÁöÁ¤µÈ ÇÁ·Î¼¼½º°¡ Á¸ÀçÇÏÁö ¾Ê°Å³ª, ÇöÀç È£ÃâÀÚ¿¡ ÀÇÇØ ÃßÀûµÇÁö ¾Ê°Å³ª ÃæÁöµÇÁö ¾Ê¾Ò´Ù. (ÃßÀûÀ» ¿ä±¸ÇÏ´Â requestµé ¶§¹®¿¡)
EIO
request °¡ ¹«È¿Çϰųª ºÎ¸ð³ª ÀÚ½ÄÀÇ ¸Þ¸ð¸®¿¡ ÀÖ´Â À¯È¿ÇÏÁö ¾Ê´Â ¿µ¿ª¿¡¼­ Àаųª ¿µ¿ªÀ¸·Î ¾µ·Á°í ÇÏ´Â ½Ãµµ°¡ ¹ß»ýÇß´Ù. ¶Ç´Â ¿öµå-Á¤·Ä À§¹ÝÀÌ Àְųª À¯È¿ÇÏÁö ¾Ê´Â ½ÅÈ£°¡ reqeust Àç½ÃÀÛµ¿¾È ÁöÁ¤µÆ´Ù.

EFAULT
ºÎ¸ð³ª ÀÚ½ÄÀÇ ¸Þ¸ð¸®¿¡ ÀÖ´Â À¯È¿ÇÏÁö ¾ÊÀº ¿µ¿ª¿¡¼­ Àаųª ¾µ·Á°í ÇÏ´Â ½Ãµµ°¡ ÀÖ¾ú´Ù. ¾Æ¸¶µµ ¿µ¿ªÀÌ ´ëÀÀµÇÁö ¾Ê¾Ò°Å³ª Á¢±ÙÇÒ¼ö ¾ø±â ¶§¹®ÀÌ´Ù. ºÒÇàÇÏ°Ôµµ, ¸®´ª½º¿¡¼­ ÀÌ ¿¡·¯¿¡ °üÇÑ ´Ù¸¥ º¯ÇüÀº ¾à°£ ¾Ö¸ÅÇÏ°Ô EIO ³ª EFAULT¸¦ ¹ÝȯÇÑ´Ù.
 

ȣȯ

SVr4, SVID EXT, AT&T, X/OPEN, BSD 4.3  

°ü·Ã Ç׸ñ

exec(3), wait(2), signal(2), fork(2), gdb(1), strace(1)  

¿ªÀÚ

Á¤°­ÈÆ <skyeyes@soback.kornet.net>, 2000³â 9¿ù 21ÀÏ


 

Index

À̸§
»ç¿ë¹ý
¼³¸í
ÁÖÀÇ
¹Ýȯ°ª
¿¡·¯
ȣȯ
°ü·Ã Ç׸ñ
¿ªÀÚ

This document was created by man2html, using the manual pages.
Time: 08:06:59 GMT, March 25, 2004