2016-06-08 70 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