⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dirfd.m4

📁 Linux下文件工具。
💻 M4
字号:
#serial 2dnl Find out how to get the file descriptor associated with an open DIR*.dnl From Jim MeyeringAC_DEFUN([UTILS_FUNC_DIRFD],[  AC_HEADER_DIRENT  dirfd_headers='#if HAVE_DIRENT_H# include <dirent.h>#else /* not HAVE_DIRENT_H */# define dirent direct# if HAVE_SYS_NDIR_H#  include <sys/ndir.h># endif /* HAVE_SYS_NDIR_H */# if HAVE_SYS_DIR_H#  include <sys/dir.h># endif /* HAVE_SYS_DIR_H */# if HAVE_NDIR_H#  include <ndir.h># endif /* HAVE_NDIR_H */#endif /* HAVE_DIRENT_H */'  AC_CHECK_FUNCS(dirfd)  AC_CHECK_DECLS([dirfd], , , $dirfd_headers)  AC_CACHE_CHECK([whether dirfd is a macro],    jm_cv_func_dirfd_macro,    AC_EGREP_CPP([dirent_header_defines_dirfd], [$dirfd_headers#ifdef dirfd dirent_header_defines_dirfd#endif],      jm_cv_func_dirfd_macro=yes,      jm_cv_func_dirfd_macro=no))  # Use the replacement only if we have no function, macro,  # or declaration with that name.  if test $ac_cv_func_dirfd,$ac_cv_have_decl_dirfd,$jm_cv_func_dirfd_macro \      = no,no,no; then    AC_REPLACE_FUNCS([dirfd])    AC_CACHE_CHECK(	      [how to get the file descriptor associated with an open DIR*],		   ac_cv_sys_dir_fd_member_name,      [        dirfd_save_CFLAGS=$CFLAGS	for ac_expr in d_fd dd_fd; do	  CFLAGS="$CFLAGS -DDIR_FD_MEMBER_NAME=$ac_expr"	  AC_TRY_COMPILE(	    [$dirfd_headers	    ],	    [DIR *dir_p = opendir("."); (void) dir_p->DIR_FD_MEMBER_NAME;],	    dir_fd_found=yes	  )	  CFLAGS=$dirfd_save_CFLAGS	  test "$dir_fd_found" = yes && break	done	test "$dir_fd_found" = yes || ac_expr=-1	ac_cv_sys_dir_fd_member_name=$ac_expr      ]    )    if test $ac_cv_have_decl_dirfd = -1; then      AC_DEFINE_UNQUOTED(DIR_FD_MEMBER_NAME,	$ac_cv_sys_dir_fd_member_name,	[the name of the file descriptor member of DIR])    fi    AH_VERBATIM(DIR_TO_FD,		[#ifdef DIR_FD_MEMBER_NAME# define DIR_TO_FD(Dir_p) ((Dir_p)->DIR_FD_MEMBER_NAME)#else# define DIR_TO_FD(Dir_p) -1#endif]    )  fi])

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -