JM プロジェクトは、主に Linux 関連のマニュアルページの日本語ページを翻訳・公開しています。
... est_macros (7) 参照 */ #include < sys/types.h > #include < sys/stat.h > #include < fcntl.h > int name_to_handle_at(int dirfd , const char * pathname , struct file_handle * handle , int * mount_id , int flags ); int open_by_handle_at(i ... nt mount_fd , struct file_handle * handle , int flags ); 説明 システムコール name_to_handle_at () と open_by_handle_at () は openat (2) の機能を 2 つに分割 ... したものである。 name_to_handle_at () は指定されたファイルに対応するハンドルを返す。 open_by_handle_at () は name_to_handle_at () が返したハンドルに対応す ... ... est_macros (7) 参照 */ #include < sys/types.h > #include < sys/stat.h > #include < fcntl.h > int name_to_handle_at(int dirfd , const char * pathname , struct file_handle * handle , int * mount_id , int flags ); int open_by_handle_at(i ... nt mount_fd , struct file_handle * handle , int flags ); 説明 システムコール name_to_handle_at () と open_by_handle_at () は openat (2) の機能を 2 つに分割 ... したものである。 name_to_handle_at () は指定されたファイルに対応するハンドルを返す。 open_by_handle_at () は name_to_handle_at () が返したハンドルに対応す ... ... on */ #include < pthread.h > #include < stdio.h > #include < stdlib.h > #include < unistd.h > #include < errno.h > #define handle_error_en(en, msg) \ do { errno = en; perror(msg); exit(EXIT_FAILURE); } while (0) static void display_pthread_attr(pthread ... prefix) { int s, i; size_t v; void *stkaddr; struct sched_param sp; s = pthread_attr_getdetachstate(attr, &i); if (s != 0) handle_error_en(s, "pthread_attr_getdetachstate"); printf("%sDetach state = %s\n", prefix, (i == PTHREAD_CREATE_DETACHED) ? "PTHR ... D" : (i == PTHREAD_CREATE_JOINABLE) ? "PTHREAD_CREATE_JOINABLE" : "???"); s = pthread_attr_getscope(attr, &i); if (s != 0) handle_error_en(s, "pthread_attr_getscope"); printf("%sScope = %s\n", prefix, (i == PTHREAD_SCOPE_SYSTEM) ? "PTHREAD_SCOPE_SYSTEM ... ... on */ #include < pthread.h > #include < stdio.h > #include < stdlib.h > #include < unistd.h > #include < errno.h > #define handle_error_en(en, msg) \ do { errno = en; perror(msg); exit(EXIT_FAILURE); } while (0) static void display_pthread_attr(pthread ... prefix) { int s, i; size_t v; void *stkaddr; struct sched_param sp; s = pthread_attr_getdetachstate(attr, &i); if (s != 0) handle_error_en(s, "pthread_attr_getdetachstate"); printf("%sDetach state = %s\n", prefix, (i == PTHREAD_CREATE_DETACHED) ? "PTHR ... D" : (i == PTHREAD_CREATE_JOINABLE) ? "PTHREAD_CREATE_JOINABLE" : "???"); s = pthread_attr_getscope(attr, &i); if (s != 0) handle_error_en(s, "pthread_attr_getscope"); printf("%sScope = %s\n", prefix, (i == PTHREAD_SCOPE_SYSTEM) ? "PTHREAD_SCOPE_SYSTEM ... ... eturned to the event listener for each event. Events reported to a group initialized with one of these flags will use file handles to identify filesystem objects instead of file descriptors. read (2) が成功すると、 読み出しバッファーには以下の構造体が ... a_len; __aligned_u64 mask; __s32 fd; __s32 pid; }; In case of an fanotify group that identifies filesystem objects by file handles, you should also expect to receive one or more additional information records of the structure detailed below following t ... 6 len; }; struct fanotify_event_info_fid { struct fanotify_event_info_header hdr; __kernel_fsid_t fsid; unsigned char file_handle[0]; }; 性能上の理由から、複数のイベントを一度の read (2) で取得できるように大きめのバッファーサイズ (例えば 4096 バイト) を ... ... * filename , int flag ); const char *dlerror(void); void *dlsym(void *handle , char *symbol ); int dladdr(void *address , Dl_info *dlip ); int dlclose (void *handle ); 特殊なシンボル: _init , _fini . ... ラリに関する情報を返す。 dladdr は成功するとゼロを、失敗すると非ゼロの値を返す。 dlclose はダイナミックライブラリのハンドル handle の参照カウントを 1 減らす。参照カウントが 0 になり、他でロードされてい るライブラリによってシンボルが使われていなければ、そ ... 出される。 例 math ライブラリをロードし、2.0 の余弦を表示する。 #include < dlfcn.h > int main(int argc, char **argv) { void *handle = dlopen ("/lib/libm.so", RTLD_LAZY); double (*cosine)(double) = dlsym(handle, "cos"); printf ("%f\n", (*cosine)(2.0)); dl ... ... * filename , int flag ); const char *dlerror(void); void *dlsym(void *handle , char *symbol ); int dladdr(void *address , Dl_info *dlip ); int dlclose (void *handle ); 特殊なシンボル: _init , _fini . ... ラリに関する情報を返す。 dladdr は成功するとゼロを、失敗すると非ゼロの値を返す。 dlclose はダイナミックライブラリのハンドル handle の参照カウントを 1 減らす。参照カウントが 0 になり、他でロードされてい るライブラリによってシンボルが使われていなければ、そ ... 出される。 例 math ライブラリをロードし、2.0 の余弦を表示する。 #include < dlfcn.h > int main(int argc, char **argv) { void *handle = dlopen ("/lib/libm.so", RTLD_LAZY); double (*cosine)(double) = dlsym(handle, "cos"); printf ("%f\n", (*cosine)(2.0)); dl ... ... * filename , int flag ); const char *dlerror(void); void *dlsym(void *handle , char *symbol ); int dladdr(void *address , Dl_info *dlip ); int dlclose (void *handle ); 特殊なシンボル: _init , _fini . ... ラリに関する情報を返す。 dladdr は成功するとゼロを、失敗すると非ゼロの値を返す。 dlclose はダイナミックライブラリのハンドル handle の参照カウントを 1 減らす。参照カウントが 0 になり、他でロードされてい るライブラリによってシンボルが使われていなければ、そ ... 出される。 例 math ライブラリをロードし、2.0 の余弦を表示する。 #include < dlfcn.h > int main(int argc, char **argv) { void *handle = dlopen ("/lib/libm.so", RTLD_LAZY); double (*cosine)(double) = dlsym(handle, "cos"); printf ("%f\n", (*cosine)(2.0)); dl ... ... * filename , int flag ); const char *dlerror(void); void *dlsym(void *handle , char *symbol ); int dladdr(void *address , Dl_info *dlip ); int dlclose (void *handle ); 特殊なシンボル: _init , _fini . ... ラリに関する情報を返す。 dladdr は成功するとゼロを、失敗すると非ゼロの値を返す。 dlclose はダイナミックライブラリのハンドル handle の参照カウントを 1 減らす。参照カウントが 0 になり、他でロードされてい るライブラリによってシンボルが使われていなければ、そ ... 出される。 例 math ライブラリをロードし、2.0 の余弦を表示する。 #include < dlfcn.h > int main(int argc, char **argv) { void *handle = dlopen ("/lib/libm.so", RTLD_LAZY); double (*cosine)(double) = dlsym(handle, "cos"); printf ("%f\n", (*cosine)(2.0)); dl ... ... on */ #include < pthread.h > #include < stdio.h > #include < stdlib.h > #include < unistd.h > #include < errno.h > #define handle_error_en(en, msg) \ do { errno = en; perror(msg); exit(EXIT_FAILURE); } while (0) static void display_stack_related_attrib ... x) { int s; size_t stack_size, guard_size; void *stack_addr; s = pthread_attr_getguardsize(attr, &guard_size); if (s != 0) handle_error_en(s, "pthread_attr_getguardsize"); printf("%sGuard size = %zu bytes\n", prefix, guard_size); s = pthread_attr_getst ... ack(attr, &stack_addr, &stack_size); if (s != 0) handle_error_en(s, "pthread_attr_getstack"); printf("%sStack address = %p", prefix, stack_addr); if (stack_size > 0) printf(" (EO ... 日本語の文書やマニュアルを配布している個人/プロジェクトへのリンクです。