Provided by: manpages-nl_20051127-4_all bug

NAAM

       stat, fstat, lstat - krijg bestand status.

OVERZICHT

       #include <sys/types.h>
       #include <sys/stat.h>
       #include <unistd.h>

       int stat(const char *bestand_naam, struct stat *buf);
       int fstat(int bestand_ind, struct stat *buf);
       int lstat(const char *bestand_naam, struct stat *buf);

BESCHRIJVING

       Deze functies geven informatie over het opgegeven bestand. Je hebt geen
       toegangs-rechten tot het bestand nodig om deze informatie  te  krijgen,
       maar je moet de zoek-rechten van alle directories hebben, genoemd in de
       pad leidend naar het bestand.

       stat geeft de status van het bestand waar file_name naar wijst, en vult
       buf in.

       lstat is gelijk aan stat, maar de status van de koppeling {"link"} zelf
       wordt genomen, niet het bestand dat verkregen wordt door de koppelingen
       te volgen.

       fstat  is  gelijk aan stat, maar het open bestand waar bestand_ind naar
       wijst (zoals teruggegeven door open(2)) wordt  genomen  in  plaats  van
       bestand_naam.

       Ze geven allemaal een stat structuur, welke de volgende velden bevat:

              struct stat
              {
                  dev_t         st_dev;      /* {apparaat} apparaat */
                  ino_t         st_ino;      /* {i node} "inode" */
                  mode_t        st_mode;     /* {toestand} bescherming */
                  nlink_t       st_nlink;    /* {n koppeling} aantal harde
                  *                           * koppelingen */
                  uid_t         st_uid;      /* {uid} gebruiker ID van eigenaar
                  *                           */
                  gid_t         st_gid;      /* {gid} groep ID van eigenaar */
                  dev_t         st_rdev;     /* {r aparaat} aparaat soort (als
                  *                           * "inode" aparaat) */
                  off_t         st_size;     /* {maat} hele grootte, in bytes */
                  unsigned long st_blksize;  /* {blok maat} blokgrootte voor
                  *                           * bestandsysteem In/Uit */
                  unsigned long st_blocks;   /* {blokken} aantal blokken
                  *                           * toegewezen */
                  time_t        st_atime;    /* {toegangs tijd} tijd van de
                  *                           * laatste toegang */
                  time_t        st_mtime;    /* {aanpas tijd} tijd van de
                  *                           * laatste aanpassing */
                  time_t        st_ctime;    /* {verander tijd} tijd van de
                  *                           * laatste verandering */
              };

       De  waarde  st_blocks  geeft  de  grootte  van  het bestand in 512-byte
       blokken.  De  waarde  st_blksize  geeft  de  "voorkeur"  blokmaat  voor
       voortvarende  bestand  systeem  In/Uit.  (Schrijven naar een bestand in
       kleinere brokken  kan  een  niet-voortvarende  lees-verander-herschrijf
       veroorzaken.)

       Niet  alle  Linux  bestandsystemen  verwezijnlijken  alle  tijd-velden.
       Traditioneel wordt st_atime {*toegangs*} veranderd door mknod(2)  {maak
       node},  utime(2)  {je  tijd},  read(2)  {lees},  write(2) {schrijf}, en
       truncate(2) {afhakken}.

       Traditioneel wordt st_mtime  {*aanpassings*}  veranderd  door  mknod(2)
       {maak  node}, utime(2) {je tijd} , and write(2) {schrijf}.  De st_mtime
       {*aanpassings*} wordt niet veranderd voor veranderingen  van  eigenaar,
       groep, harde koppeling aantal, of toestand {"mode"}.

       Traditioneel  wordt  st_ctime  {*verander*} veranderd door schrijven of
       door het  ’zetten’  van  "inode"  informatie  (o.a.,  eigenaar,  groep,
       koppelingen aantal, toestand, enz.)

       De volgende POSIX macros zijn bepaald om het bestand soort te testen:

              S_ISLNK(m)  {is koppeling} is het een symbolische koppeling?

              S_ISREG(m)  {is normaal} normaal bestand?

              S_ISDIR(m)  {is dir} directorie?

              S_ISCHR(m)  {is karakter} karakter aparaat?

              S_ISBLK(m)  {is blok} blok aparaat?

              S_ISFIFO(m) {is eerst-in-eerst-uit} "fifo"?

              S_ISSOCK(m) {is socket} socket? {"socket"}

       De volgende vlaggen worden bepaald voor het st_mode {toestand} veld:

       S_IFMT     0170000   bitmasker voor de bestandsoort bitvelden
       S_IFSOCK   0140000   socket {"socket"}
       S_IFLNK    0120000   {bestand verbind} symbolische koppeling
       S_IFREG    0100000   {best. normaal} normaal bestand
       S_IFBLK    0060000   {best. blok} blok aparaat
       S_IFDIR    0040000   {best. dir} dir
       S_IFCHR    0020000   {best. karakter} karakter aparaat
       S_IFIFO    0010000   {eerst-in-eerst-uit} "fifo"
       S_ISUID    0004000   {zet gebruiker id} zet gebruiker ID bit
       S_ISGID    0002000   {zet groep id} zet groep ID bit (zie onder)
       S_ISVTX    0001000   {zet plakkerig} zet sticky bit (zie onder)
       S_IRWXU    00700     {lees schrijf voer-uit gebruiker} masker voor bestand eigenaar toestemmingen
       S_IRUSR    00400     {lees gebruiker} eigenaar heeft lees toestemming
       S_IWUSR    00200     {schrijf gebruiker} eigenaar heeft schrijf toestemming
       S_IXUSR    00100     {voer-uit gebruiker} eigenaar heeft uitvoer toestemming
       S_IRWXG    00070     {lees schrijf voer-uit groep} masker voor groep toestemmingen
       S_IRGRP    00040     {lees groep} groep heeft lees toestemming
       S_IWGRP    00020     {schrijf groep} groep heeft schrijf toestemming
       S_IXGRP    00010     {voer-uit groep} groep heeft uitvoer toestemming
       S_IRWXO    00007     {lees schrijf voer-uit anderen} masker voor toestemmingen voor anderen (niet in groep)
       S_IROTH    00004     {lees anderen} anderen hebben lees toestemming
       S_IWOTH    00002     {schrijf anderen} anderen hebben schrijf toestemming
       S_IXOTH    00001     {voer-uit anderen} anderen hebben uitvoer toestemming

       Het  zet GID bit (S_ISGID) heeft verschillende toegewijde toepassingen:
       Voor een dir geeft het aan dat BSD regels moeten worden  gebruikt  voor
       die dir: bestanden daar gemaakt erven hun groep ID van de dir, niet van
       het geldende gid van het makende proces, en  directories  daar  gemaakt
       zullen het S_ISGID bit ook gezet hebben.  Voor een bestand dat niet het
       groep uitvoer bit (S_IXGRP) aan  heeft  staan  betekend  het  verplicht
       bestand/"record" vergrendelen.

       Het  ‘sticky’  bit (S_ISVTX) op een dir betekend dat een bestand in die
       dir alleen hernoemd of geschrapt kan worden door de  eigenaar  van  het
       bestand, door de eigenaar van de dir, en door "root" {root}.

TERUGGEEF WAARDE

       Bij  success wordt nul teruggegeven. Bij falen wordt -1 teruggegeven en
       wordt errno naar behoren gezet.

FOUTEN

       EBADF  {slechte bi.} bestand_bes is slecht.

       ENOENT {geen ingang} Een deel van de weg bestand_naam bestaat niet,  of
              de pad is een leeg string.

       ENOTDIR
              {geen dir} Een deel van de pad is geen dir.

       ELOOP  {cirkel}  Teveel symbolische koppelingen werden tegengekomen bij
              het afdalen van de weg.

       EFAULT {fout} Slecht adres.

       EACCES {toegang} Toegang geweigerd.

       ENOMEM {geen geheugen} Geheugen is op (kernel geheugen).

       ENAMETOOLONG
              {naam te lang} Bestand naam te lang.

VOLDOET AAN

       De stat en fstat aanroepen voldoen aan SVr4, SVID, POSIX,  X/OPEN,  BSD
       4.3.   de  lstat  aanroep  voldoet aan 4.3BSD en SVr4.  SVr4 beschrijft
       aanvullende fstat fouttoestanden EINTR, ENOLINK,  en  EOVERFLOW.   SVr4
       beschrijft  aanvullende  stat  en  lstat  fouttoestanden EACCES, EINTR,
       EMULTIHOP,  ENOLINK,  en  EOVERFLOW.   Gebruik  van  de  st_blocks   en
       st_blksize  velden  zou  minder  overdraagbaar  kunnen zijn. (Ze werden
       bedacht in BSD.  Worden niet opgegeven door POSIX. De uitleg  verschild
       tussen  systemen,  en  mogelijk  binnen  een systeem als NFS mountingen
       {"mounts"} een rol spelen.)

       POSIX  beschrijft  de  S_IFMT,  S_IFSOCK,  S_IFLNK,  S_IFREG,  S_IFBLK,
       S_IFDIR,  S_IFCHR,  S_IFIFO,  S_ISVTX bits niet, maar vereist in plaats
       daarvan het gebruik van de macro’s S_ISDIR(), enz.  Unix V7 (en  latere
       systemen)  hadden  S_IREAD, S_IWRITE, S_IEXEC, waar POSIX de synoniemen
       S_IRUSR, S_IWUSR, S_IXUSR voorschrijft.

ANDERE SYSTEMEN

       Waardes die in gebruikt waren (of zijn) op verschillende systemen:

       hex    naam       ls   octaal   beschrijving
       f000   S_IFMT          170000   masker voor bestand soort
       0000                   000000   SCO buiten-gebruik "inode", BSD onbekende soort
                                       SVID-v2 en XPG2 hebben allebei 0 en 0100000 voor
                                       normale bestand
       1000   S_IFIFO    p|   010000   "fifo" (pijp met naam)
       2000   S_IFCHR    c    020000   karakter speciaal (V7)
       3000   S_IFMPC         030000   vermeervoudigd karakter speciaal (V7)
       4000   S_IFDIR    d/   040000   dir (V7)
       5000   S_IFNAM         050000   XENIX benoemd speciaal bestand
                                       met twee sub-soorten, zich onderscheidend door
                                       st_rdev waardes 1,2:
       0001   S_INSEM    s    000001   XENIX semaphore sub-soort van IFNAM
       0002   S_INSHD    m    000002   XENIX gedeeld gegevens sub-soort van IFNAM
       6000   S_IFBLK    b    060000   blok speciaal (V7)

       7000   S_IFMPB         070000   vermeervoudigd blok speciaal (V7)
       8000   S_IFREG    -    100000   normaal (V7)
       9000   S_IFCMP         110000   VxFS ingedikt
       9000   S_IFNWK    n    110000   netwerk speciaal (HP-UX)
       a000   S_IFLNK    l@   120000   symbolische koppeling (BSD)
       b000   S_IFSHAD        130000   Solaris schaduw "inode" voor ACL (niet zichtbaar voor gebruikersruimte)
       c000   S_IFSOCK   s=   140000   socket (BSD; ook "S_IFSOC" op VxFS)
       d000   S_IFDOOR   D    150000   Solaris deur {"door"}
       e000   S_IFWHT    w%   160000   BSD "whiteout" {vlak-uit} (niet gebruikt voor "inode"

       0200   S_ISVTX         001000   ‘sticky bit’: bewaar gewisselde {"swapped"} text zelfs na gebruik (V7)
                                       gereserveerd (SVID-v2)
                                       Op niet-directories: dit bestand niet bufferen {"cache!"} (SunOS)
                                       Op directories: beperkte schrappen vlag (SVID-v4.2)
       0400   S_ISGID         002000   zet groep ID bij uitvoeren (V7)
                                       voor directories: gebruik BSD regels voor voortplanting van gid
       0400   S_ENFMT         002000   SysV bestand vergrendelen bekrachtiging (gedeeld met S_ISGID)
       0800   S_ISUID         004000   zet gebruiker ID bij uitvoering (V7)
       0800   S_CDF           004000   dir is een omgevings afhankelijk bestand {"context dependent"} (HP-UX)

       Een "sticky" opdracht verscheen in Versie 32V AT&T UNIX.

ZIE OOK

       chmod(2) {verander toestand}, chown(2) {verander eigenaar}, readlink(2)
       {lees koppeling}, utime(2) {tijd}

VERTALING

       Dit  is  een  handleiding  uit  manpages-dev  1.29.   Alles  wat tussen
       ‘{’..‘}’ staat is aanvullende vertaling, en hoort niet bij de originele
       handleiding.  Email naar <manpages-nl@nl.linux.org>.

       $Id: stat.2,v 1.1.1.1 2004/03/21 21:02:25 cor Exp $