2016-06-08 71 views
0

返回我有一些代碼,看起來像這樣:從文件中獲取文件名*從mkstemp

char template[] = "temp-XXXXXX"; 
FILE * f = mkstmp(template); 

/* ... some stuff is written to f with fprintf ...*/ 

char fname[15] = xyzzy(f); // <-- Problem 

char tmp[20]; 
sprintf(tmp,"less %s", fname); 
system(tmp); 

我需要找出由mkstmpf這樣我就可以調用它less名稱。

+1

我覺得你應該自己回答你的問題,所以,如果有人發現你的問題在未來,浩也將找到答案(也許你會獲得一些聲望:-))的 –

+0

可能的複製[從C]中的文件指針獲取文件名(http://stackoverflow.com/questions/9937645/obtain-filename-from-file-pointer-in-c) – ebyrob

+0

@ebyrob不完全,因爲雖然在一般情況下,它是不可能的(至少在便攜方式中),在使用'mkstmp()'的特殊情況下,這很容易 –

回答

1

template將被更改爲文件名。所以:

sprintf(tmp,"less %s",template) 
system(tmp); 
+0

你應該在這裏放置你的答案並接受。不要在你的問題中提出答案。 – Rob

+0

@rob這是爲了那些在問題上滾動的人的利益。 – Blacksilver