FUSEで仮想ファイルシステムで読み取り/書き込みを試みるユーザーとプロセスに関する情報をどのように取得できますか? [閉鎖]

FUSEで仮想ファイルシステムで読み取り/書き込みを試みるユーザーとプロセスに関する情報をどのように取得できますか? [閉鎖]

FUSEというファイルシステムを作成しfooます/mnt/foo

ファイルを開くためにmyuserrunningという名前のユーザーがいる場合、ユーザーとプロセスに関する情報を含むFUSEメソッドまたはデータ構造は何ですか?ユーザー/グループとプロセスの実際の名前、またはRUIDとPIDが必要です。vi/mnt/foo

見続けるこれ ただし、doxygenの記事に記載されている情報が見つかりません。

答え1

サーキットブレーカの動作中に呼び出すと、fuse_get_context()現在呼び出されているユーザーID、グループID、プロセスID、およびumaskを取得できます。fusion_context構造

struct fuse_context {
        struct fuse *fuse;
        uid_t uid;
        gid_t gid;
        pid_t pid;
        void *private_data;
        mode_t umask;
};

これは文書そしてBSDマニュアルページにこの機能が記載されています。

低レベルAPIを使用している場合は、現在の関数を使用して渡すfuse_req_ctx必要があります。fuse_req_tこのスレッドfuse_req_ctx 返品aへのポインタfusion_ctx構造uidその中には、、、gidおよび呼び出し手続き用がありますpidumask

関連情報