6
私は(POSIX int
ファイル記述子を使用してすべての道は論外残念なことにある)は、Mac OS X上で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
(明らかに私はこれらの3つのアクセスモードを知っています)のために使用しています。しかし、はと私はそれを自分で知る必要がなければ、よりエレガントになります。これは恐らくdup
コールがそれを必要としないので可能です。
FILE*
ストリームのアクセスモードを確認するにはどうすればよいですか?