system 함수 실행 결과를 파일로 저장 할 수 있는지요?

60
points
points
system("cat /etc/passwd | grep home")
이런 결과를 fprintf를 사용해서
fprintf(f,"%s",system("cat /etc/passwd | grep home"))
이런식으로 사용하니 null 값이 들어가네요[/code]
파일에 저장 하는 방법이 있을까요?
KLDPOpen Source, Geek, IT... |
|
사용자 로그인둘러보기KLDP 내용 검색KLDP Wiki |
points
임시 file 을 사용하면 되지 않을까요?
좀 구린 방법이긴 합니다만...
system("cat /etc/passwd | grep home > /tmp/xxx")
과 같이 해서 결과를 /tmp/xxx 에 저장한 뒤, program 에서 /tmp/xxx 를 열어 내용을 보면 되겠지요.
그게 정 싫으시다면...
system 대신 pipe 생성하여 fork 한 뒤 exec를 사용하여 직접 stdout 을 parent 의 특정 fd 로 보내버리는 방법도...
points
system 반환값이
system 반환값이 정수형인걸로 알고 있습니다.
그냥 pipe를 만들거나 파일로 결과값을 리다이렉트 해서 처리하는 수 밖에 없을듯 합니다.
points
stdout 을 close 하고
stdout 을 close 하고 새로 파일을 open 한 다음에 system 을 호출하면 됩니다.
--
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...
http://mytears.org ~(~_~)~ 나 한줄기 바람처럼..
points
popen() 이란 편리한
popen() 이란 편리한 함수가 있죠.. :-)
----
Let's shut up and code.