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

0
points

system("cat /etc/passwd | grep home")

이런 결과를 fprintf를 사용해서

fprintf(f,"%s",system("cat /etc/passwd | grep home"))

이런식으로 사용하니 null 값이 들어가네요[/code]

파일에 저장 하는 방법이 있을까요?

molla의 이미지
2431
points

임시 file 을 사용하면 되지 않을까요?

1
point

좀 구린 방법이긴 합니다만...

system("cat /etc/passwd | grep home > /tmp/xxx")
과 같이 해서 결과를 /tmp/xxx 에 저장한 뒤, program 에서 /tmp/xxx 를 열어 내용을 보면 되겠지요.

그게 정 싫으시다면...

system 대신 pipe 생성하여 fork 한 뒤 exec를 사용하여 직접 stdout 을 parent 의 특정 fd 로 보내버리는 방법도...

system 반환값이

0
points

system 반환값이 정수형인걸로 알고 있습니다.
그냥 pipe를 만들거나 파일로 결과값을 리다이렉트 해서 처리하는 수 밖에 없을듯 합니다.

정태영의 이미지
14606
points

stdout 을 close 하고

0
points

stdout 을 close 하고 새로 파일을 open 한 다음에 system 을 호출하면 됩니다.

--
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...

http://mytears.org ~(~_~)~ 나 한줄기 바람처럼..

sangwoo의 이미지
3816
points

popen() 이란 편리한

1
point

popen() 이란 편리한 함수가 있죠.. :-)
----
Let's shut up and code.

댓글 보기 옵션

원하시는 댓글 전시 방법을 선택한 다음 "설정 저장"을 누르셔서 적용하십시오.