http://www.hackerschool.org/HS_Boards/zboard.php?id=Free_Board&no=37848 [º¹»ç]
´ëÃæ ·çÆ®±âÁØÀ¸·Î procÆú´õ¸¦ ¾Ë±ä Çߴµ¥,
ÇÁ·Î¼¼½º¸¦ Á÷Á¢ Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» Á¦ÀÛÇÏ´Ùº¸´Ï
ÀÚ¼¼È÷ ¾Ë°Ô µÇ¾úÀ½.
=====================================
#include <stdio.h>
#include <stdlib.h>
void get_process_name_by_pid(int pid) {
char path[256];
FILE *fp;
char name[256];
// /proc/[pid]/comm °æ·Î »ý¼º
snprintf(path, sizeof(path), "/proc/%d/comm", pid);
fp = fopen(path, "r");
if (fp == NULL) {
perror("fopen");
return;
}
// ÇÁ·Î¼¼½º À̸§ Àбâ
if (fgets(name, sizeof(name), fp) != NULL) {
printf("Process name for PID %d: %s", pid, name); // À̸§ Ãâ·Â
} else {
printf("Could not read the process name for PID %d\n", pid);
}
fclose(fp);
}
int main(void) {
int pid = 1234; // ƯÁ¤ PID¸¦ ÀÔ·Â
get_process_name_by_pid(pid);
return 0;
}
=========================================
ÀÌ·¸°Ô ps¸¦ ¾²±â¸¸ ÇÏ´Ù°¡ ƯÁ¤ ÇÁ·Î¼¼½º¸¦ Ãâ·ÂÇÏ´Â ÇÁ·ÎÁ§Æ®¸¦ ÁøÇàÇÏ°í Àִµ¥
proc¾È¿¡ ¼ýÀÚµéÀÌ pidÀÌ¸ç µ¿ÀûÀ¸·Î ÇÁ·Î¼¼½º ¾ÆÀ̵ðµéÀÌ »ý¼ºµÇ°í
»èÁ¦µÈ´Ù´Â °É ¾Ë¾ÒÀ½... ¤¾¤¾
/proc´Â °¡»ó ÆÄÀÏ ½Ã½ºÅÛÀÌ¸ç ¸®´ª½º¿¡¼ ½ÇÇà ÁßÀÎ ÇÁ·Î¼¼½º¿Í Ä¿³Î Á¤º¸¸¦
Á¦°øÇϴ Ưº°ÇÑ µð·ºÅ丮ÀÓ.
½ÇÁ¦·Î µð½ºÅ©¿¡ Á¸ÀçÇÏ´Â ÆÄÀÏÀÌ ¾Æ´Ï¶ó Ä¿³Î°ú »óÈ£ÀÛ¿ëÇÔ.
/procÀÇ ÁÖ¿ä ¿ªÇÒÀº
ÇÁ·Î¼¼½º Á¤º¸, °¢ ÇÁ·Î¼¼½º¿¡ ´ëÇÑ »ó¼¼ Á¤º¸¸¦ ´ã°í ÀÖÀ½.
¿¹¸¦ µé¾î, /proc/[pid] µð·ºÅ丮´Â ƯÁ¤ PID,
½Ã½ºÅÛÀÇ ÇöÀç »óÅÂ, Çϵå¿þ¾î Á¤º¸, Ä¿³Î ¸Å°³º¯¼ö µî ´Ù¾çÇÑ ½Ã½ºÅÛ Á¤º¸¸¦ Á¦°øÇÔ.
¸®´ª½º APIÀÎ Posix-C¸¦ ¹è¿ü´Âµ¥ ¿©±â¼ ½á¸ÔÈû ¤¾¤¾
ls, find, getuid, chmod¿Í °°Àº ¸í·É¾î¸¦ Á÷Á¢ ÇÁ·Î±×·¡¹ÖÇؼ ¸¸µé¾úÀ½ ¤»¤» |
Hit : 284 Date : 2025/01/18 08:52
|