6
我在Mac OS X(使用POSIX int
文件描述符一路是不幸的是沒問題的)C複製一個FILE*
,所以我想出了以下功能:我可以獲得`FILE *`的訪問模式嗎?
static FILE* fdup(FILE* fp, const char* mode)
{
int fd = fileno(fp);
int duplicated = dup(fd);
return fdopen(duplicated, mode);
}
它非常好,除了它有一個小的醜陋的地方,我再次要求文件模式,因爲fdopen
顯然無法確定它本身。
這個問題並不重要,因爲基本上,我只是用它stdin
,stdout
和stderr
(顯然我知道這三個的接入方式)。不過,如果我自己不需要知道,它會更優雅;這可能是因爲dup
調用不需要它。
如何確定FILE*
流的訪問模式?