getdents

Autres langues

Langue: ja

Autres versions - même langue

Version: 2007-06-01 (openSuse - 09/10/07)

Section: 2 (Appels système)

̾Á°

getdents - ¥Ç¥£¥ì¥¯¥È¥ê¡¦¥¨¥ó¥È¥ê¤ò¼èÆÀ¤¹¤ë

½ñ¼°


#include <unistd.h>

#include <linux/types.h>

#include <linux/dirent.h>

#include <linux/unistd.h>

#include <errno.h>



int getdents(unsigned int fd, struct dirent *dirp, unsigned int count);

ÀâÌÀ

¤³¤ì¤Ï¤¢¤Ê¤¿¤¬¶½Ì£¤ò»ý¤Ä¤è¤¦¤Ê´Ø¿ô¤Ç¤Ï¤Ê¤¤¡£ POSIX ½àµò¤Î C ¥é¥¤¥Ö¥é¥ê¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë¤Ä¤¤¤Æ¤Ï readdir(3) ¤ò¸«¤ë¤³¤È¡£ ¤³¤Î¥Ú¡¼¥¸¤ÏÍç¤Î¥«¡¼¥Í¥ë¥·¥¹¥Æ¥à¥³¡¼¥ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤òµ­¤·¤Æ¤¤¤ë¡£

getdents() ¤Ï fd ¤Ç»ØÄꤷ¤¿¥Ç¥£¥ì¥¯¥È¥ê¤«¤é dirp ¤¬»Ø¤·¤Æ¤¤¤ë¥á¥â¥êÎΰè¤Ë¤¤¤¯¤Ä¤«¤Î dirent ¹½Â¤ÂΤòÆɤ߹þ¤à¡£ count ¥Ñ¥é¥á¡¼¥¿¡¼¤Ï ¥á¥â¥êÎΰè¤Î¥µ¥¤¥º¤Ç¤¢¤ë¡£

dirent ¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤ËÀë¸À¤µ¤ì¤Æ¤¤¤ë:


struct dirent {

    long d_ino;                 /* inode number */

    off_t d_off;                /* offset to next dirent */

    unsigned short d_reclen;    /* length of this dirent */

    char d_name [NAME_MAX+1];   /* filename (null-terminated) */

}

d_ino ¤Ï inode ÈÖ¹æ¤Ç¤¢¤ë¡£ d_off ¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤ÎÀèƬ¤«¤é¼¡¤Î dirent ¤ÎÀèƬ¤Þ¤Ç¤Îµ÷Î¥¤Ç¤¢¤ë¡£ d_reclen ¤Ï¤³¤Î dirent Á´ÂΤΥµ¥¤¥º¤Ç¤¢¤ë¡£ d_name ¤Ï¥Ì¥ë(null)ʸ»ú¤Ç½ª¤ï¤ë¥Õ¥¡¥¤¥ë̾¤Ç¤¢¤ë¡£

¤³¤Î¥³¡¼¥ë¤Ï readdir(2) ¤Ë¼è¤Ã¤ÆÂå¤ï¤ë¡£

ÊÖ¤êÃÍ

À®¸ù¤·¤¿¾ì¹ç¤Ï¡¢Æɤ߹þ¤ó¤À¥Ð¥¤¥È¿ô¤¬ÊÖ¤µ¤ì¤ë¡£ ¥Ç¥£¥ì¥¯¥È¥ê¤Î½ª¤ï¤ê¤Ê¤é¤Ð 0 ¤¬ÊÖ¤µ¤ì¤ë¡£ ¥¨¥é¡¼¤Î¾ì¹ç¤Ï -1 ¤òÊÖ¤µ¤ì¡¢ errno ¤ËŬÀÚ¤ÊÃͤ¬ÀßÄꤵ¤ì¤ë¡£

¥¨¥é¡¼

EBADF
¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ fd ¤Ï̵¸ú¤Ç¤¢¤ë¡£
EFAULT
°ú¤­¿ô¤Î¥Ý¥¤¥ó¥¿¡¼¤¬¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¶õ´Ö¤Î ³°Éô¤ò»Ø¤·¤Æ¤¤¤ë¡£
EINVAL
·ë²ÌÍѤΥХåե¡¡¼¤¬¾®¤µ¤¹¤®¤ë¡£
ENOENT
¤½¤Î¤è¤¦¤Ê¥Ç¥£¥ì¥¯¥È¥ê¤Ï¸ºß¤·¤Ê¤¤¡£
ENOTDIR
¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¥Ç¥£¥ì¥¯¥È¥ê¤ò»²¾È¤·¤Æ¤¤¤Ê¤¤¡£

½àµò

SVr4.

Ãí°Õ

glibc ¤Ï¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÂФ¹¤ë¥é¥Ã¥Ñ¡¼´Ø¿ô¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¡£ syscall(2) ¤ò»È¤Ã¤Æ¸Æ¤Ó½Ð¤¹¤³¤È¡£

´ØÏ¢¹àÌÜ

readdir(2), readdir(3)