Top Banner

of 24

Files & Directories-II

Jun 01, 2018

Download

Documents

prak10930
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • 8/9/2019 Files & Directories-II

    1/24

    Files & Directories

    stat , fstat & lstat functions

    > Return information about a le.Syntax :

    #include

    #include

    Int stat(const char*pathname,struct stat *buf);

    Int fstat(int ledes,struct stat *buf);

    Int lstat(const char

    *pathname,struct stat * buf);

  • 8/9/2019 Files & Directories-II

    2/24

    stat > returns a structure of information

    fstat > obtains information about te le

    %stat > returns information about te symbolic lin!

    Second ar is a pointer to a structure tat 'e mustsupply

    Structre denition can di(er

    struct stat )

    mode*t st*mode+ino*t st*ino+

    de,*t st*de,+

    de,*t st*rde,+

    nlin! st*nlin! +

    uid*t st*uid+

    id*t st*id+

    o(*t st*si-e+

    time*t st*atime+

  • 8/9/2019 Files & Directories-II

    3/24

    time*t st*mtime+

    time*t st*ctime+

    lon st*bl!si-e+lon st*bloc!s+

  • 8/9/2019 Files & Directories-II

    4/24

    access Function

    0is function is used to test on real user 1D and realroup 1D

    * Synta!#include

    1nt access2const car patname" int mode3+

    *"eturns!

    4 if 56 " $ on error 0e mode is te bit'ise 5R of any of te constants.

    #ode $escription

    R*56 0est for read permission

    7*56 0est for 'rite permission8*56 0est for execute permission

    F*56 0est for existence of le

  • 8/9/2019 Files & Directories-II

    5/24

    umas% Function

    0is function sets te le mode creation mas! for teprocess

    9o error ms* Synta!

    #include

    #include

    mode*t umas!2mode*t cmas!3+*"eturns!

    pre,ious le mode creation mas!

  • 8/9/2019 Files & Directories-II

    6/24

    chmod and fchmod Functions

    sed to cane te le access permissions for an existin le.

    * Synta !

    #include

    #include

    1nt cmod 2const car patname"mode*t mode3+

    1nt fcmod 2int ledes" mode*t mode3+

    * "eturn !

    4 if o! " $ on error ;cmod function operates on specied le

    ;fcmod function operates on already opened le

    = conditions to cane te permission bits of a le:

    > 0e e(ecti,euser1D of a process o'ner of te le> 0e process must a,e super user permission

    ?dditional modes are :

    > S*1S@AB1D 2?dded set1D constants3

    > S*1S08 20e sa,ed 0ext constant3

    > S*1R78 20e C combined constants3

  • 8/9/2019 Files & Directories-II

    7/24

    he mode constants for chmod function

    #ode $escription

    S*1S1D setuser1D on execution

    S*1SA1D setroup1D on execution

    S*1S08 sa,ed0ext 2Stic!y Eit3

    S*1R78 read"'rite"execute by user 2o'ner3

    S*1RSR read by user 25'ner3

    S*17SR 'rite by user 25'ner3S*18SR xecute by user 25'ner3

    S*1R78A Read"'rite" execute by roup

    S*1RARG read by roup

    S*17ARG 'rite by roup

    S*18ARG xecute by roup

    S*1R785 Read"'rite" execute by oter 2'orld3

    S*1R50H read by oter 2'orld3

    S*1750H 'rite by oter 2'orld3

    S*1850H xecute by oter 2'orld3

  • 8/9/2019 Files & Directories-II

    8/24

    0e ;cmod function automatically clear = of te permission bitsunder te follo'in conditions:

    $. 5nly super user can set te stic!y bit oter'ise stic!y bit turned o(

    =. Aroup1D of a le is not eIual to (ecti,eAroup1D of process " ten

    setroup1D bit turned o(.. Stic%y 'it

    1f it 'as set for an executable proram le " tat le stored in s'aparea.

    Jainly used for reduce te time for load le in memory

    Eot SRK and K.CLESD allo's te stic!y bit to be set for a directory if te bit is set for a directory " a le in te directory can be remo,edor renamed only if te user as 'rite permission for te directory " andeiter

    > 5'ns te le

    > 5'ns te directory or

    > is te superuser

    . chon , fchmod and lchon functions

    *;co'n function allo's us to cane te user1D of a le and te

    roup*1D of a le.

  • 8/9/2019 Files & Directories-II

    9/24

    *Synta!

    #include

    #include

    int co'n2const car patname"uid*t o'ner" id*t roup3+

    int fco'n2int ledes" uid*t o'ner" id*t roup3+int lco'n2const car patname" uid*t o'ner"id*t roup3+

    *"eturn!

    4 if o! " $ on error

    lchon canes te o'ner of te symbolic lin!. 'er%eley based systems super user only can cane teo'nersip of a le

    System allo'ed any user can cane te o'nersip of anyles

    In +SI-./> 5nly a super user process can cane te user 1D of te le

    > ? non super user can cane te roup 1D of te le if

    te process o'ns te le

    o'ner eIuals te user 1D of te le & roup 1D

  • 8/9/2019 Files & Directories-II

    10/24

    File Si0e

    1n stat structure " te eld st*si-e contains si-e of te le in bytes.

    0is eld is meanin ful only for

    > reular les

    > directories> symbolic lin!s

    S"1denes te le si-e for a pipe

    "e2ular File a le si-e of 4 is allo'ed

    $irectory 3 te le si-e is usually a multiple of a number suc as

    $M or N$=* Symbolic 4in% 3 te le si-e is actual number of bytes in te

    lename

    5! usr6lib 3 le si0e is 7

    * S"1 and 1.89'S$

    st*bl!si-e

    st*bloc!s

    * :oles in a File

    > Reular le can contain ole

    > Holes are created by see!in past te current endofle & 'ritinsome data

  • 8/9/2019 Files & Directories-II

    11/24

    File runcation

    mptin a le by usin ;5*0R9O Pa in open function ?dditional functions to truncate te data are

    Synta!

    #include

    #include

    int truncate2const car patname" o(*t lent3+

    int ftruncate2int ledes"o(*t lent3+

    *"eturn!4 if 56 " $ on error

    0e = functions truncate an existin le to ;lent bytes.

    0ese = functions are pro,ided by

    > SRK

    > K.CLESD

  • 8/9/2019 Files & Directories-II

    12/24

    File Systems

    Gartition Gartition Gartition

    ilistDirectory bloc!s and

    data bloc!s

    inode inode QQ.. inode

  • 8/9/2019 Files & Directories-II

    13/24

    ilistDatabloc!

    Directory bloc!

    Databloc!

    Directory bloc!

    inode inodei

    node

    i

    node

    i

    nodeno.

    File

    9ame

    i

    nodeno.

    File

    9ame

  • 8/9/2019 Files & Directories-II

    14/24

    arious le implementation types

    1n SRK supports = di(erent types of dis! le systems

    > 0e traditional 918 system le system 2SN3

    > 0e unied File System 2FS3 FS Eased on te Eer!ley fast le system

    SRK supports additional nondis! lesystems

    > = distributed le systems

    > ? bootstrap le system ? dis! dri,e di,ided into $ or more partitions

    ac partition contains a le system

    inode contains information about te le

    1n te stat structure " te lin! count is contained in test*lin! member. 1ts primiti,e system data type in nlin!*t .0ese types of lin!s are calledhard lin%.

    Symbolic 4in% 0e actual content of te le

    contains te name of te le tat te symbolic lin! pointto it.

  • 8/9/2019 Files & Directories-II

    15/24

    1f te le type in i*node S*1F%96 " tat le issymbolic lin! le

    i*node contains

    > File type> File ?ccess Germission bits

    >File Si-e

    > Gointer to te data bloc!s for te le

    stat structure information obtain from i*node Directory contains

    > File 9ame

    >i*node number

    9o directory entry point to an i*node in a di(erentle systems

  • 8/9/2019 Files & Directories-II

    16/24

    lin% , unlin%, remoe, & rename Functions

    ?ny le can a,e multiple directory entries pointin to itsi*node

    lin% Function

    > sed to create a lin! to an existin le

    3

  • 8/9/2019 Files & Directories-II

    17/24

    unlin% Function

    > Remo,e an existin directory entry

    3 0is function remo,es te directory entry & decrementste lin! count of te referenced by ;patname

    > 1f oter lin! points to te le and data of te le is stillaccessible " ten le is not caned & error occurs

    > 0o unlin! a le " 'e must a,e

    > 7rite permission

    > xecute permission> 1f stic!y bit is set to te directory " 'e must a,e

    > 7rite permission and eiter of follo'in

    > 5'n te le > 5'n te directory > Super userpermission

    > lin! count 4 ten te content of te le 'ill be deleted

    * F ti

  • 8/9/2019 Files & Directories-II

    18/24

    * remoe Function

    > unilin! a le or directory 'it tis function

    3 For a le ;remo,e ; unlin!

    >For a directory ;remo,e ;rmdir> In =>SI ? 3 0is function used for delete a le

    * rename Function

    > sed to rename a directory or le

    3< Synta !#include

    int rename2const car oldname" const car ne'name3+

    3< "eturns !

    o if o!" $ on errror

    S b li 4i %

  • 8/9/2019 Files & Directories-II

    19/24

    Symbolic 4in%s

    1s an indirect pointer to a le

    %imitations of Hard lin!:

    > Hard reIuired " lin! & le reside in te same lesystem

    >5nly super user can create a ard lin! to adirectory

    9o limitations for symbolic lin! 0is is used for

    > Jo,e a le

    > Jo,e an entire directory ierarcy

    1ntroduced 'it K.CLESD 7it SRK " symbolic lin!s are supported for

    > 0e 0raditional System FileSystem 2SN3

    > nied FileSystem 2FS3

    li % & dli % F ti

  • 8/9/2019 Files & Directories-II

    20/24

    symlin% & readlin% Functions

    symlin% Function

    > Oreate a Symbolic lin!

    3

  • 8/9/2019 Files & Directories-II

    21/24

    File imes

    C time elds are maintained for eac le

    Field $escription 5ample ls(/) option

    st*atime lastaccess time of le data read u

    st*mtime last*modication time of ledata 'rite default

    st*ctime lastcane time of i*node status cmod " co'n c

    Jany operations a(ect i*node 'itour canin te actual contents of te le :

    > canin te le access permissions

    > Oanin te user 1D

    > Oanin te number of lin!s 0e system does not maintain te lastaccess time for an i*node

    0e ;ls command displays or sorts only one of te C time ,alues.

    ls l or lst options uses te modication time of a le

    u option causes it to use te access time

    c option causes it to use te canestatus time

    utime Function

  • 8/9/2019 Files & Directories-II

    22/24

    utime Function

    sed to cane access time & modication time of a le

    *Synta !

    #include

    #includeint utime2const car patname" const struct utimebuf times3+

    * "eturns!

    4 if 56 " $ on errror

    0e Structure used by tis function is

    struct utimebuf

    @

    timeAt actime;

    timeAt modtime;

    B

    0ese = time ,alues in te structure are calendar times " 'iccount seconds .

    1f time is a null pointer " access time & modication time currenttime

    1f time is a null pointer " access time & modication time structure pointed ,alue

    %di & di F ti

  • 8/9/2019 Files & Directories-II

    23/24

    m%dir & rmdir Functions m%dir Function

    >Oreate an empty directory

    3< Synta!

    #include#include

    1nt m!dir2const car patname"mode*t mode3+

    3 0e automatic entires are

    dot 2.3 dotdot 2..3

    rmdir Function

    >Delete an empty directory

    3< Synta!

    #include

    int rmdir2cosnt car patname3+

    3< "eturns!

    4 if 56 " $ on error

    "eadin2 $irectories

  • 8/9/2019 Files & Directories-II

    24/24

    "eadin2 $irectories