6

ファイル記述子を必要とするいくつかの既存の関数を使用できるように、メモリをファイル記述子にマップできるようにしたいと考えています。これが本質的に私が探しているものです:

void do_operation1(int fd);

char data[DATA_MAX] = { /* embedded binary data */ };
int fd = addr_to_fd(data, DATA_MAX);

do_operation1(fd);
/* ... operate on fd ... */

これを実現するために、どのシステム コールを使用できますか?

4

4 に答える 4

7

一部の実装にはfmemopen(). (もちろん、電話する必要がありますfileno())。

fork()そうでない場合は、とを使用して自分で作成できますpipe()

于 2010-05-12T19:23:33.427 に答える
3

チェックアウトする必要がありshm_open()ます。

于 2010-10-01T05:24:09.813 に答える
2

もちろん、open(argv[0], ...)ファイル全体をスキャンして、バイナリ データの開始lseek()点を見つけてください。もちろん、そのファイルにはバイナリデータの長さはありません。

于 2011-11-08T17:24:20.593 に答える