System Interface - PowerPoint PPT Presentation

1 / 7
About This Presentation
Title:

System Interface

Description:

System Interface – PowerPoint PPT presentation

Number of Views:76
Avg rating:3.0/5.0
Slides: 8
Provided by: weiku
Category:
Tags: interface | system

less

Transcript and Presenter's Notes

Title: System Interface


1
System Interface
  • Interface that provides services from the OS
    (Higher than BIOS)
  • Memory
  • Scheduler
  • File/Storage System
  • Inter-process Communication and Network, etc

program
libc
Operating System
BIOS
2
File System
  • A popular but also complex subsystem
  • File descriptors (pseudo files, like stdin and
    stdout)
  • Low level IO
  • File Management
  • Examples

file pointer
/
usr
bin
home
file
EOF
3
A little about File Attributes
  • File attributes (srwxrwxrwx)
  • read, write and execute
  • an octal digit, rwx, desribes the permission to a
    set of users
  • Three sets of differents users, owner, group and
    others
  • Some unix commands umask, chmod, etc to change
    the attributes

4
File Accesses
  • Read and Write
  • getc() and putc() getchar() and putchar()
  • int read(int fd, char buf, int n)
  • int write(int fd, char buf, int n)

include syscalls.h / Should be stdio.h / int
main () char buf1024 int n
while ((n read(0, buf, 1024)) gt 0)
write ( 1, buf, n) return 0
include syscalls.h / Should be stdio.h / int
getchar () char c return (read(0, c,
1) 1 ) ? c EOF
5
File Accesses -- continued
  • Open, creat, close and unlink
  • int open(char name, int flags, int perms)
  • Persm can be O_RONLY, O_RDWR, O_WRONLY and others
  • int creat(char name, int perms) / within open,
    O_CREAT /
  • int close(int fd)
  • int unlink(char path)

include stdio.h / A copy program/ int main
() char f1 file1, f2file2 int
fd1, fd2, n if (fd1 open(f1, O_RDONLY, 0)
-1) usage(uanble to opening source
file s\n, f1) if (fd2 creat(f2, 0666)
-1) usage(unable to creating new file s
\n, f2) while ((n read(fd1, buf, 1024) gt
0) write ( fd2, buf, n) return 0
include ltstdio.hgt void usage(char fmt, )
va_list args va_start(args, fmt)
fprintf(stderr, error ) vfprintf(stderr,
fmt, args) va_end(args)
fprint(usage srcfile destfile\n)
6
File seek -- access with fix location
  • lseek
  • long lseek(int fd, long offset, itn origin)
  • Origin 0, 1, 2, determines where to start
    offset.
  • 0 beginning 1 current location 2 the end.

include stdio.h / A copy program/ int main
() char f1 file1, f2file2 int
fd1, fd2, n if (fd1 open(f1, O_RDONLY, 0)
-1) usage(uanble to opening source
file s\n, f1) if (fd2 creat(f2, 0666)
-1) usage(unable to creating new file s
\n, f2) else lseek(fd2, 0L, 2)
while ((n read(fd1, buf, 1024) gt 0)
write ( fd2, buf, n) return 0
7
Recap on lab 4
  • File access alternatives
  • File fp fopen()
  • fgets()
  • Int fd open(name, flags, perms)
  • read(fd, buff, n)

include ltstdio.hgt / lab 4 / int main ()
char maibox argv1 int fd File
fp if 1 fp fopen(mailbox,
r) else fd open (mailbox,
O_RDONLY, 0) endif for ( ) / keep
reading every line and process the
HEADER and BODIES / return 0
Write a Comment
User Comments (0)
About PowerShow.com