From: "Vladimir V. Saveliev" <vs@namesys.com>
To: "Kristian Köhntopp" <kris@koehntopp.de>
Cc: reiserfs-list@namesys.com
Subject: Re: struct dirent *ent->d_type weirdness
Date: Mon, 19 Sep 2005 18:33:48 +0400 [thread overview]
Message-ID: <432ECC4C.30707@namesys.com> (raw)
In-Reply-To: <200509191558.27362.kris@koehntopp.de>
Hello
Kristian Köhntopp wrote:
> I have a machine running under 2.6.13-SMP, using reiserfs 3.6. On
> this machine, directories are flagged strangely and thus code
> which operates properly under ext3 fails with reiserfs.
>
> Why is this, and what am I doing wrong?
>
> My goal is to walk a spool directory recursively and deal with
> all files inside directories that I encounter. For that, I check
> struct dirent *ent->d_type and get unexpected results.
>
Yes, unfortunately, reiserfs does not support entry types.
Probably it should, but there is nothing wrong to not support it:
man readdir:
According to POSIX, the dirent structure contains a field char d_name[] of unspecified size, with at most NAME_MAX charac╜
ters preceding the terminating null character. Use of other fields will harm the portability of your programs. POSIX
1003.1-2001 also documents the field ino_t d_ino as an XSI extension.
>
> mx15:/tmp # uname -a
> Linux mx15 2.6.13web #4 SMP Fri Sep 16 16:03:39 CEST 2005 i686
> unknown
>
> mx15:/tmp # cat rtest.cpp
> #include <stdio.h>
> #include <dirent.h>
>
> int main(int argc, char** argv)
> {
> struct dirent *ent = NULL;
> DIR *dd = NULL;
>
> dd = opendir(argv[1]);
> if (dd != NULL) {
> while ((ent = readdir(dd)) != NULL) {
> /* disable actual test and print ent->d_type */
> /* ent->d_type==DT_DIR && ent->d_name[1]==0 && ent->d_name[0]>0
> && ent->d_name[0]!='.'*/
> if (1) {
> printf("%s (%d) \n", ent->d_name, ent->d_type);
> }
> }
> closedir(dd);
> }
> }
> mx15:/tmp # ./rtest /netsite/var/spool/wmail.reiser
> . (0)
> .. (0)
> head (0)
> dbclub02 (0)
> mx15:/tmp # df -Th /netsite/var/spool/wmail.reiser
> Dateisystem Typ Größe Benut Verf Ben% Eingehängt auf
> /reiserfile
> reiserfs 2.0G 33M 2.0G
> 2% /netsite/var/spool/wmail.reiser
>
>
>
> Kristian
>
>
next prev parent reply other threads:[~2005-09-19 14:33 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-09-19 13:58 struct dirent *ent->d_type weirdness Kristian Köhntopp
2005-09-19 14:33 ` Vladimir V. Saveliev [this message]
2005-09-19 16:25 ` Kristian Koehntopp
2005-09-19 17:14 ` Andreas Dilger
2005-09-22 15:03 ` Grzegorz Jaśkiewicz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=432ECC4C.30707@namesys.com \
--to=vs@namesys.com \
--cc=kris@koehntopp.de \
--cc=reiserfs-list@namesys.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.