Rechercher une page de manuel
scandir
Langue: ja
Version: 2001-12-26 (openSuse - 09/10/07)
Section: 3 (Bibliothèques de fonctions)
̾Á°
scandir, alphasort, versionsort - ¥Ç¥£¥ì¥¯¥È¥ê¤òÁöºº¤¹¤ë½ñ¼°
#include <dirent.h> int scandir(const char *dir, struct dirent ***namelist,
- int(*filter)(const struct dirent *), int(*compar)(const struct dirent **, const struct dirent **));
int alphasort(const void *a, const void *b);
int versionsort(const void *a, const void *b);
ÀâÌÀ
´Ø¿ô scandir() ¤Ï¥Ç¥£¥ì¥¯¥È¥ê dir ¤òÁöºº¤·¡¢ ¥Ç¥£¥ì¥¯¥È¥ê¤Î³Æ¥¨¥ó¥È¥ê¤ò°ú¤¿ô¤È¤·¤Æ filter() ¤ò¸Æ¤Ó½Ð¤¹¡£ filter() ¤¬ 0 °Ê³°¤ÎÃͤòÊÖ¤¹¥¨¥ó¥È¥ê¤Ï malloc(3) ¤Ë¤è¤Ã¤Æ ³ÎÊݤµ¤ì¤¿Ê¸»úÎó¤ËÊݸ¤µ¤ì¡¢Èæ³Ó´Ø¿ô compar() ¤òÍѤ¤¤Æ qsort(3) ¤Ë¤è¤ê¥½¡¼¥È¤µ¤ì¡¢ malloc(3) ¤Ë¤è¤ê³ÎÊݤµ¤ì¤¿ÇÛÎó namelist ¤Ë¤Þ¤È¤á¤é¤ì¤ë¡£ filter ¤¬ NULL ¤Ê¤é¤Ð¡¢¤¹¤Ù¤Æ¤Î¥¨¥ó¥È¥ê¤¬ÁªÂò¤µ¤ì¤ë¡£Èæ³Ó´Ø¿ô compar() ¤Ë¤Ï alphasort() ´Ø¿ô¤È versionsort() ´Ø¿ô¤ò»È¤¦¤³¤È¤¬¤Ç¤¤ë¡£ alphasort() ¤Ï strcoll(3) ¤òÍѤ¤¤Æ¥Ç¥£¥ì¥¯¥È¥ê¥¨¥ó¥È¥ê¤ò¥½¡¼¥È¤·¡¢ versionsort() ¤Ïʸ»úÎó (*a)->d_name ¤È (*b)->d_name ¤ËÂФ·¤Æ strverscmp(3) ¤òÍѤ¤¤ë¡£
ÊÖ¤êÃÍ
´Ø¿ô scandir() ¤ÏÁªÂò¤µ¤ì¤¿¥¨¥ó¥È¥ê¤Î¿ô¤«¡¢ (¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç) -1 ¤òÊÖ¤¹¡£´Ø¿ô alphasort() ¤È versionsort() ¤Ï 1 ÈÖÌܤΰú¤¿ô¤¬ 2 ÈÖÌܤΰú¤¿ô¤ËÂФ·¤Æ¡¢ [¾®¤µ¤¤/Åù¤·¤¤/Â礤¤] ¤«¤Ë±þ¤¸¤Æ¡¢0 ¤è¤ê [¾®¤µ¤¤/Åù¤·¤¤/Â礤¤] ÃͤòÊÖ¤¹¡£
¥¨¥é¡¼
- ENOMEM
- Æ°ºî¤ò´°¿ë¤¹¤ë¤Ë¤Ï¥á¥â¥ê¤¬Â¤ê¤Ê¤¤¡£
½àµò
¤³¤ì¤é¤Î´Ø¿ô¤Ï¤¤¤º¤ì¤â POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¤¬¡¢ alphasort() ¤È scandir() ¤Ï POSIX.1 ¤Î¾Íè¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë´Þ¤á¤ë¤«¸¡Æ¤Ãæ¤Ç¤¢¤ë¡£´Ø¿ô scandir() ¤È alphasort() ¤Ï 4.3BSD ¤«¤é¼è¤êÆþ¤ì¤é¤ì¡¢Linux ¤Ç¤Ï libc4 ¤«¤é»ÈÍѲÄǽ¤Ë¤Ê¤Ã¤¿¡£ libc4 ¤È libc5 ¤Ç¤Ï°Ê²¼¤Î¤è¤¦¤Ê¤â¤Ã¤È¾ÜºÙ¤Ê¥×¥í¥È¥¿¥¤¥×¤ò»È¤Ã¤Æ¤¤¤ë¡£
int alphasort(const struct dirent ** a, const struct dirent **b);
¤·¤«¤· glibc 2.0 ¤Ç¤ÏÉÔÀµ³Î¤Ê BSD ¤Î¥×¥í¥È¥¿¥¤¥×¤ËÌá¤Ã¤¿¡£
´Ø¿ô versionsort() ¤Ï GNU ¤Î³ÈÄ¥¤Ç¤¢¤ê¡¢glibc 2.1 °Ê¹ß¤Ç»ÈÍѲÄǽ¤Ç¤¢¤ë¡£
glibc 2.1 °Ê¹ß¤Ç¤Ï alphasort() ¤Ï strcoll(3) ¤ò¸Æ¤Ó½Ð¤¹¡£ alphasort() ¤Ï°ÊÁ°¤Ï strcmp(3) ¤ò»È¤Ã¤Æ¤¤¤¿¡£
Îã
/* ¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤Î¥Õ¥¡¥¤¥ë¤òµÕ½ç¤Ë½ÐÎϤ¹¤ë */ #include <dirent.h> int main(void) { struct dirent **namelist; int n; n = scandir(".", &namelist, 0, alphasort); if (n < 0) perror("scandir"); else { while(n--) { printf("%s\n", namelist[n]->d_name); free(namelist[n]); } free(namelist); } }
´ØÏ¢¹àÌÜ
closedir(3), fnmatch(3), opendir(3), readdir(3), rewinddir(3), seekdir(3), strcmp(3), strcoll(3), strverscmp(3), telldir(3)Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre