I use this simple program to test seekdir #include #include #include #include int main(int argc, char** argv) { off_t offset; DIR* pDir; struct dirent* pDirent; assert (argc == 2); printf ("Opening dir: %s\n", argv[1]); pDir = opendir(argv[1]); pDirent = readdir(pDir); printf("1st entry: %s \n", pDirent->d_name); pDirent = readdir(pDir); printf("2nd entry: %s \n", pDirent->d_name); pDirent = readdir(pDir); if (pDirent == NULL) return 1; printf("3rd entry: %s\n", pDirent->d_name); offset = telldir(pDir); printf("The offset (telldir) for the 4th entry is %d,\n", offset); pDirent = readdir(pDir); if (pDirent == NULL) return 1; printf("4th entry: %s\n", pDirent->d_name); pDirent = readdir(pDir); if (pDirent == NULL) return 1; printf("5th entry: %s\n", pDirent->d_name); pDirent = readdir(pDir); if (pDirent == NULL) return 1; printf("6th entry: %s\n", pDirent->d_name); printf("Using seekdir to get back to the 4th entry\n"); seekdir(pDir, offset); pDirent = readdir(pDir); printf("4th entry (using seekdir): %s\n", pDirent->d_name); return 0; } and the output is root@amber:/mnt/yaffs> ls lost+found root@amber:/mnt/yaffs> touch a b c d e f g root@amber:/mnt/yaffs> ls -al total 12 drw-rw-rw- 1 root root 2048 Jan 1 00:03 . drwxr-xr-x 4 root root 4096 Mar 27 2007 .. -rw-r--r-- 1 root root 0 Jan 1 00:03 a -rw-r--r-- 1 root root 0 Jan 1 00:03 b -rw-r--r-- 1 root root 0 Jan 1 00:03 c -rw-r--r-- 1 root root 0 Jan 1 00:03 d -rw-r--r-- 1 root root 0 Jan 1 00:03 e -rw-r--r-- 1 root root 0 Jan 1 00:03 f -rw-r--r-- 1 root root 0 Jan 1 00:03 g drw-rw-rw- 1 root root 2048 Jan 1 00:03 lost+found root@amber:/mnt/yaffs> seekDirTest . Opening dir: . 1st entry: . 2nd entry: .. 3rd entry: g The offset (telldir) for the 4th entry is 3, 4th entry: f 5th entry: e 6th entry: d Using seekdir to get back to the 4th entry 4th entry (using seekdir): f root@amber:/mnt/yaffs> rm g root@amber:/mnt/yaffs> seekDirTest . Opening dir: . 1st entry: . 2nd entry: .. 3rd entry: f The offset (telldir) for the 4th entry is 3, 4th entry: e 5th entry: d 6th entry: c Using seekdir to get back to the 4th entry 4th entry (using seekdir): f root@amber:/mnt/yaffs> After deleting g, the 4th entry is f, but supposed to be e. Anthony --------------------------------- Now that's room service! Choose from over 150,000 hotels in 45,000 destinations on Yahoo! Travel to find your fit.