/proc pid (숫자로된 디렉토리)를 검색하는 프로그램인데요..
대충 출력만 나오게끔 짜봤습니다.
근데.. 궁금한게..
디렉토리를 읽어들여서 문자열은 제외하고 숫자만 출력하는 프로그램입니다.
그런데.. 화면에 문자열을 출력이 안되는 NULL값이 있어서 그런지 빈 라인이 찍혀서 나옵니다!!
제가 원하고자하는 바는.. 빈 라인도 출력이 안되게끔 하는거예요. 어떻게 하면 좋을지요?
출력화면을 캡쳐해서 올렸습니다.
--------------------------------------------------------------------------------
#include
#include
#include
#include
#include
char str_buf[40];
static int i;
char *IsDigit(char *str);
int main(int argc, char *argv[])
{
DIR *dp;
struct dirent *dirp;
char proc_file[40];
char *p;
if ( (dp = opendir("/proc")) == NULL)
{
perror("opendir error!");
exit(0);
}
while ( (dirp = readdir(dp)) != NULL)
{
memset (str_buf, (int)NULL, sizeof(str_buf));
if (strcmp (dirp->d_name, ".") !=0 &&
strcmp (dirp->d_name, "..") !=0)
if (IsDigit(dirp->d_name) != NULL)
{
printf("%s\n", str_buf);
}
}
closedir(dp);
return 0;
}
char *IsDigit(char *str)
{
int j=0;
for (i=0; i
{
if (isdigit(str[i]))
str_buf[j++] = str[i];
}
return str_buf;
}
------------------------------------------------------------------------------
첨부 | 파일 크기 |
---|---|
output.jpg | 23.53 KB |
..
ps 소스를 한번 보시면 어떨까요? 보기 어려우시면 busybox에 들어 있는것을 한번 보시는것도 좋을거 같습니다. busybox나 coreutil쪽 한번 찾아보시면 원하시는 답을 얻으실수 있을겁니다.
댓글 달기