word count 의 값을 가지고 싶습니다.

noblesse.lucy의 이미지

혹시 ls 문에서

제가 사용하는게 system("ls -ld /proc/[1-9]* | wc") 를 사용해서

processe를 알아내는데요 이것을 서버로 전송을 해야하는데

변수에다가 쓸 수 있는 방법이 있을까요 ? ㅠㅠ

도와주세요

noblesse.lucy@gmail.com

익명 사용자의 이미지

Quote:
#include <stdio.h>

main()
{
FILE *fp;
char line[130]; /* line of data from unix command*/

fp = popen("ls -ld /proc/[1-9]* | wc", "r"); /* Issue the command. */

/* Read a line */
while ( fgets( line, sizeof line, fp))
{
printf("%s", line);
}
pclose(fp);
}


대충 위와 같이 하면 될듯합니다.
line변수에 줄단위로 들어오겠지요.
위의 shell script결과는 한줄이지만(원하는 결과인지도 모르지만), 여러줄인 경우 라인단위처리는 위와 같이 하면 대충 쓸 수 있겠지요.

* popen()의 단점은 출력만 또는 입력만 받을 수 있다는 것이지요. 만일 입출력을 모두 제어하고 싶다면, 역시 파이프로 엮어서 해야 겠지요?!

dotri의 이미지

비단 유닉스 뿐만이 아니라, 거의 모든 환경에서 공통적으로 지켜야 할 원칙이 있습니다.

KISS( Keep It Simple and Short )
/* 약자에 대해서는 여러 의견이 있습니다( Keep It Simple, Stupid! 라는 의견을 포함하여 )만, 대강의 의미는 위와 같죠 */

굳이 system() 함수를 쓰고 싶으시면, ps 의 실행 결과를 파일로 리다이렉션해서, 그 파일을 읽어보심이 어떨런지요.

system( "ps -aux > /etc/pstemp" );
fp = fopen( "/etc/pstemp", "r" );
fgets( fp );
...

이런식으로 하시면 실행 결과를 한줄씩 읽을 수 있을 뿐만 아니라, 문자열을 쉽게 취할 수 있고, 게다가 쉘 스크립트나 다른 기교를 사용하지 않고도 직관적으로 이해할 수 있는 프로그램이 나올겁니다. 가장 좋은 방법은 윗분 말씀대로 파이프를 쓰는것이 맞지 않나 싶지만.. 질문자께서는 같은 문제로 다른 질문을 반복해서 올리시고 계시는군요. 그냥 간단하고 무식(?)하게 코딩해버리세요.

10분에 한번 동작할 프로그램이고, 프로그램의 동작이 복잡하지 않은 편이기에 성능문제는 신경쓰지 않아도 된다고 봅니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.