2013-02-09 4 views
0

에 저장하면 정보를 sprintf에서 변수로 저장할 수 있습니까? 아래의 코드 줄은 내 질문을 더 잘 설명하기위한 예제입니다.sprintf의 정보를 변수

char fileName; 
fileName = sprintf(command, "find -inum %i -type f", iNode); 

목적은, 아이 노드 번호와 관련된 파일 이름을 찾아 해당 파일 이름을 "합계"를 실행하는 것입니다.

+2

나중에 'command' 변수를 사용할 수 없습니까? – templatetypedef

+0

나는 당신이 ['popen'] (http://pubs.opengroup.org/onlinepubs/9699919799/functions/popen.html) 기능을 찾고 있다고 생각합니다. –

+0

전체 프로그램에서 popen 함수를 사용하고 있지만 문제가 있습니다. 다른 대안이 있는지 알아보기. – seiryuu10

답변

2

난 당신이 뭔가 할 생각 :

FILE *fp; 
char cmd[1024]; 
char filename[1024]; 

sprintf(cmd, "find -inum %i -type f", iNode); 
fp = popen(cmd); 
fgets(filename, sizeof filename, fp); 
pclose(fp); 

이 코드의 끝에를 filenamecmd에 의해 생성 된 주먹 라인이 포함됩니다.

+0

이 코드 줄을 시도하고 fprintf (stdout, "% s \ n", filename)를 추가했습니다. 방금 빈 줄을 봤어. 이 코드 라인이 올바르지 않습니까? – seiryuu10

+0

테스트 용으로 유닉스 박스가 필요하지 않습니다. 쉘에서'find'를하면 무엇을 생산합니까? –

+0

'find -inum 148869 -type f'가 './test.c'를 생성합니다. – seiryuu10