Provided by: manpages-nl_20051127-4_all
 

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 voort‐
        varende  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.  Tra‐
        ditioneel wordt st_atime {*toegangs*}  veranderd  door  mknod(2)  {maak
        node}, utime(2) {je tijd}, read(2) {lees}, write(2) {schrijf}, en trun     
        cate(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,  kop‐
        pelingen 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}.
        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.
        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_blk‐
        size velden zou minder overdraagbaar kunnen zijn. (Ze werden bedacht in
        BSD.  Worden niet opgegeven door POSIX. De uitleg verschild tussen sys‐
        temen, 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.
        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.
        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 $