Argomenti della lezione. Generalità. System calls. Corso di Sistemi Operativi Programmazione di Sistema e Concorrente
|
|
- Umberto Chiesa
- 7 anni fa
- Visualizzazioni
Transcript
1 Università di Roma La Sapienza Dipartimento di Informatica e Sistemistica Corso di Sistemi Operativi Programmazione di Sistema e Concorrente Lezione III Gestione dell Input/Output System Calls Argomenti della lezione System calls Struttura del file system UNIX System calls per la gestione dei files ANSI C - Input/Output System calls vs. chiamate a libreria Corso di Sistemi Operativi - Esercitazioni (Lez.3) 2 System calls Generalità Una system call è l unico modo di accedere al kernel del S.O. al fine di effettuare una operazione privilegiata o specifica per l hardware/sistema (in codice assembly) Ad ogni system call è associato un numero univoco In Linux (RedHat 8.0) sono definite 243 system calls (<asm/unistd.h>) #define NR_syscallname syscallnum Es: #define NR_open 5 Nel Darwin di MacOsX (<sys/syscall.h>) definite 363 syscalls Corso di Sistemi Operativi - Esercitazioni (Lez.3) 4 1
2 Implementazione 2 possibili invocazioni dirette: metodo syscall(syscallnum, args ) macro _syscalln definite in <asm/unistd.h> (sconsigliato); Fornite al programmatore attraverso delle funzioni interfaccia (stub), definite in genere nella libreria libc, con lo stesso nome della syscall; Entrambe memorizzano gli argomenti nei registri (limite max), cambiano il modo user in modo kernel (nell 80x86 interrupt 0x80), facendo sì che il kernel esegua il vero e proprio codice della syscall. Corso di Sistemi Operativi - Esercitazioni (Lez.3) 5 Esempio Chiusura di un file Chiamata alla funzione in libc: #include <unistd.h> close(filedescriptor); Chiamata tramite macro: #include <unistd.h> _syscall1(int, close, int, filedescriptor); Chiamata diretta: #include <syscall.h> extern int syscall(int, ); syscall(sys_close, filedescriptor); Corso di Sistemi Operativi - Esercitazioni (Lez.3) 6 Argomenti e valori di ritorno Il numero di argomenti può variare da 0 a 6, a seconda della system call invocata Valori di ritorno: 0 (o +), se la chiamata va a buon fine; -1, se vi sono stati degli errori (assegnano lo specifico codice di errore nella variabile globale errno, definita in <errno.h>) dichiarazione: extern int errno Con la funzione: include <stdio.h> void perror (char *str); si ottiene una descrizione dell errore nel formato: str: messaggio-di-errore \n Corso di Sistemi Operativi - Esercitazioni (Lez.3) 7 Principali system calls Classe Gestione di file Gestione di processi Comunicazione fra processi creat() read() dup() stat() chown() fork() alarm() getpid() msgget() msgrcv() semget() shmget() System Call open() write() link() fstat() umask() execx() signal() getppid() msgctl() pipe() semop() shmctl() close() lseek() unlink() chmod() ioctl() wait() kill() exit() msgsnd() mkfifo() semctl() shmat() Corso di Sistemi Operativi - Esercitazioni (Lez.3) 8 2
3 Files in UNIX 4 tipi di files: Regolari o ordinari Directory Pipe e Fifo Speciali rappresentano un device (block device o character device) non contengono dati, ma solo un puntatore al device è visto dal file system come una semplice sequenza di bytes (stream) può essere indicato con più di un nome, anche in directory diverse i nomi multipli sono detti link (hard link) e sono tutti equivalenti per il S.O. Corso di Sistemi Operativi - Esercitazioni (Lez.3) 9 Struttura di un file E rappresentato da un inode, che contiene: attributi del file 15 puntatori a blocchi di dati contenuto del file I primi 12 puntano direttamente a blocchi Gli altri tre puntano a blocchi indiretti (single indirect block, double indirect block pointer, triple indirect block) Tutti gli inodes sono memorizzati in un array del file system detto i-list, di dimensione fissata L accesso ad uno specifico inode in una i-list (link) avviene attraverso un i-number (short int) Ogni file di un file system ha un i-number L inode di una directory contiene la lista dei files (inode) in essa contenuti (cambiano gli attributi) Corso di Sistemi Operativi - Esercitazioni (Lez.3) 10 Attributi di un inode Accesso ad un inode {-,d,b,c,p UID (2/4 byte) GID (2/4 byte) date links_count rwx rwx rwx Sticky (1 bit) tipologia di file: normale, directory, block-device, character-device, pipe identificatori del proprietario e del suo gruppo ora dell ultima modifica e dell ultimo accesso al file contatore del numero di hard link al file permessi di accesso per proprietario, gruppo, altri (codifica ottale) per le directory rimuove la possibilità di cancellare files Corso di Sistemi Operativi - Esercitazioni (Lez.3) 11 Una system call indica il file a cui si vuole accedere tramite un file descriptor (int 0) Il file descriptor è utilizzato dal kernel per indicizzare una tabella di file aperti per il processo corrente Ogni entry della tabella contiene un puntatore ad una file structure (vnode) Essa, a sua volta, punta ad un inode Poiché la tabella dei files aperti ha una lunghezza fissa (impostabile solo al boot) c è un limite imposto al # di files aperti contemporaneamente nel sistema Corso di Sistemi Operativi - Esercitazioni (Lez.3) 12 3
4 System calls per la gestione files in Unix Descrittori speciali ed eredità di descrittori 0 standard input 1 standard output 2 standard error In <unistd.h>: aperti per default alla creazione di un processo i relativi file possono essere chiusi #define STDIN_FILENO 0 /* standard input file descriptor */ #define STDOUT_FILENO 1 /* standard output file descriptor */ #define STDERR_FILENO 2 /* standard error file descriptor */ Corso di Sistemi Operativi - Esercitazioni (Lez.3) 14 Creazione di file int creat(char *file_name, int mode) invoca la creazione di un file; se il file esiste già, rimuove il contenuto del file preesistente, coservando però i suoi diritti di accesso *file_name: puntatore alla stringa di caratteri che definisce il pathname del file da creare mode: specifica i permessi di accesso al file da creare il descrittore di file per l accesso al file creato (-1 se errore) Corso di Sistemi Operativi - Esercitazioni (Lez.3) 15 creat(): errori parte del path della stringa *file_name non è una directory o non esiste la stringa *file_name corrisponde ad una directory esistente non si hanno permessi di accesso ad una delle directory specificate nel path *file_name è un puntatore nullo o punta a un indirizzo di memoria non valido per il processo è già stato raggiunto il # max di file che si possono aprire contemporaneamente Corso di Sistemi Operativi - Esercitazioni (Lez.3) 16 4
5 creat(): esempio Creazione di un file di nome pippo, nella directory corrente, con permessi di lettura-scrittura per tutti gli utenti #include <stdio.h> void main() { if(creat("pippo",0666) == -1) { printf("errore in chiamata creat\n"); exit(1); Corso di Sistemi Operativi - Esercitazioni (Lez.3) 17 Apertura di un file int open(char *file_name, int option_flags [, int mode]) invoca l apertura di un file esistente è anche possibile invocare la creazione del file *file_name: puntatore alla stringa di caratteri che definisce il pathname del file da aprire option_flags: specifica la modalita di apertura (read, write etc.) mode: specifica i permessi di accesso al file in caso di creazione contestuale all apertura un descrittore per l accesso al file (-1 in caso di fallimento) Corso di Sistemi Operativi - Esercitazioni (Lez.3) 18 Valori per option_flags L option_flags è espresso come combinazione (in bitwise or ) di 1 o più di questi valori, definiti in <fcntl.h>: O_RDONLY: apertura del file in sola lettura; O_WRONLY: apertura del file in sola scrittura; O_RDWR: apertura in lettura e scrittura; O_APPEND: apertura del file con puntatore alla fine del file; ogni scrittura sul file sarà effettuata a partire dalla fine del file; O_CREAT : crea il file con modalità d'accesso specificate da mode solo se esso non esiste; O_TRUNC : elimina il contenuto del file se esso già esiste; O_EXCL : (exclusive) serve a garantire che il file sia stato effettivamente creato dal processo che effettua la chiamata. N.B.: open( pippo, O_WRONLY O_TRUNC O_CREAT, 0660) creat( pippo, 0660) Corso di Sistemi Operativi - Esercitazioni (Lez.3) 19 open(): errori parte del path della stringa *file_name non è una directory o non esiste non si hanno permessi di accesso ad una delle directory specificate nel path il file indicato non esiste e O_CREAT non è presente nella specifica di option_flags; il file indicato esiste già e in option_flags sono specificati O_CREAT e O_EXCL; il file indicato è un file di testo condiviso che è attualmente in uso; *file_name è un puntatore nullo o punta a un indirizzo di memoria non valido per il processo è già stato raggiunto il # max di file che si possono aprire contemporaneamente Corso di Sistemi Operativi - Esercitazioni (Lez.3) 20 5
6 Chiusura di un file int close(int descriptor) invoca la chiusura di un file e l eventuale svuotamento del buffer descriptor: descrittore del file da chiudere -1 in caso di fallimento descriptor non corrisponde ad un canale di input/output aperto il S.O. chiude automaticamente i file ancora aperti alla terminazione di un processo Corso di Sistemi Operativi - Esercitazioni (Lez.3) 21 Lettura: read() int read(int descriptor, char *buffer* buffer,, unsigned size) invoca la lettura di un dato numero di caratteri (byte) da un file descriptor: descrittore relativo al file (aperto) da cui leggere *buffer: puntatore all area di memoria buffer dove memorizzare i byte letti size: quantità di byte da leggere un intero 0 indicante il numero di byte effettivamente letti (-1 se fail) Corso di Sistemi Operativi - Esercitazioni (Lez.3) 22 read(): errori descriptor non corrisponde ad un canale di input/output aperto descriptor corrisponde ad un canale non aperto in lettura il buffer indicato, avente dimensione size non è contenuto interamente all interno dello spazio di indirizzamento del processo se il # di bytes letti > della dimensione del buffer, i caratteri in eccesso vengono scritti nell area di memoria esterna al buffer: se interna al processo errore non segnalato Corso di Sistemi Operativi - Esercitazioni (Lez.3) 23 Scrittura: write() int write(int int descriptor, char *buffer* buffer,, unsigned size) invoca la scrittura di un certo numero di caratteri su file descriptor: descrittore relativo al file su cui scrivere buffer: puntatore al buffer dal quale vengono prelevati i caratteri che si vogliono scrivere size: quantità di byte da scrivere il numero di byte effettivamente scritti (-1 in caso di fallimento) Corso di Sistemi Operativi - Esercitazioni (Lez.3) 24 6
7 write(): errori descriptor non corrisponde ad un canale di input/output aperto descriptor corrisponde ad un canale non aperto in scrittura il buffer indicato, avente dimensione size non è contenuto interamente all interno dello spazio di indirizzamento del processo se il # di bytes scritti > della dimensione del buffer, vengono scritti su file anche i bytes contenuti nell area di memoria esterna al buffer la scrittura di X caratteri su un file esistente appena aperto, sostituisce i primi X caratteri di tale file, non effettua troncamento Corso di Sistemi Operativi - Esercitazioni (Lez.3) 25 Un esempio di applicazione: il comando cpcat Scrivere un programma che, attraverso la sintassi: cpcat file_sorg file_dest effettua una copia di file_sorg nominandola file_dest Se il file destinazione già esiste il sistema deve darne notifica all utente Se il file destinazione non viene specificato il sistema deve mostrare il file sullo standard output Corso di Sistemi Operativi - Esercitazioni (Lez.3) 26 Esempio Cosa accade eseguendo il seguente frammento di codice? #include<fcntl.h> int main() { int fd1, fd2; fd1 = open("file1", O_WRONLY O_CREAT O_TRUNC, 0644); fd2 = open("file1", O_WRONLY); write(fd1, Pippo", strlen( Pippo")); write(fd2, Ugo", strlen( Ugo")); close(fd1); close(fd2); Corso di Sistemi Operativi - Esercitazioni (Lez.3) 27 Posizionamento: lseek() int lseek(int descriptor, long offset, int option) modifica il valore del file pointer descriptor: descrittore relativo al file di cui spostare il pointer offset: numero di caratteri di cui viene spostato il file pointer option: indica il punto da cui calcolare lo spostamento SEEK_SET (=0): spostamento a partire da inizio file; SEEK_CUR (=1): spostamento a partire dal valore corrente del file pointer; SEEK_END (=2): spostamento a partire dalla fine del file; nuovo valore del file pointer (# di caratteri dall inizio del file), -1 se fallimento Corso di Sistemi Operativi - Esercitazioni (Lez.3) 28 7
8 lseek() descriptor non corrisponde a nessun canale di input/output aperto; option ha un valore non ammesso il nuovo file pointer avrebbe un valore negativo Esempi: lseek(fd, 10, 0); /* Sposta di 10 byte dall inizio */ lseek(fd, 20, 1); /* Sposta di 20 byte in avanti */ lseek(fd, -10, 1); /* Sposta di 10 byte indietro */ lseek(fd, -10, 2); /* Sposta a 10 byte dalla fine */ lseek(fd, -10, 0); /* Errore (file pointer immutato) */ Corso di Sistemi Operativi - Esercitazioni (Lez.3) 29 Aliasing di file: link() int link(char *path_name, char *alias_name); invoca la creazione di un alias *path_name: puntatore alla stringa di caratteri che definisce il file di cui si vuole creare un alias *alias_name: puntatore alla stringa di caratteri che definisce il nome dell alias 0 in caso di successo, -1 se fallisce Corso di Sistemi Operativi - Esercitazioni (Lez.3) 30 link(): errori un componente del path_name: non è una directory non esiste supera i limiti *alias_name punta ad una stringa di caratteri che identifica un alias già esistente alias di directory possono essere creati solo dal superuser: *path_name punta ad una directory ed il processo non è un processo di superutente la directory di destinazione per l alias non è accessibile in scrittura Corso di Sistemi Operativi - Esercitazioni (Lez.3) 31 unlink() int unlink(char *alias_name); int unlink(char *alias_name); rimuove l alias indicato, e decrementa il contatore di riferimenti al corrispondente file (campo links_count dell inode) se links_count = 0 il file viene eliminato *path_name: puntatore alla stringa di caratteri che definisce il file di cui si vuole creare un alias *alias_name: puntatore alla stringa di caratteri che definisce il nome dell alias 0 in caso di successo, -1 se fallisce *alias_name identifica un alias inesistente l alias risiede in un file system a sola lettura Corso di Sistemi Operativi - Esercitazioni (Lez.3) 32 8
9 link() + unlink() = rinomina #include <stdio.h> main(int argc, char *argv[]) { if (argc!= 3) { fprintf(stderr, uso: %s vecchionome nuovonome\n, argv[0]); exit(1); if (link(argv[1], argv[2] == -1) { perror( errore in link ); exit(1); if (unlink(argv[1]) == -1) { perror( errore in unlink ); exit(1); Se la chiamata link fallisce allora esegue perror ed esce, altrimenti crea il link Se la chiamata unlink fallisce esegue perror ed esce, altrimenti elimina il vecchio link Duplicazione di un descrittore In UNIX è possibile duplicare un descrittore di file esistente. Il nuovo descrittore: afferisce allo stesso file associato al descrittore originario; eredita lo stesso file pointer del canale originario; eredita la stessa modalità di accesso al file del canale originario Corso di Sistemi Operativi - Esercitazioni (Lez.3) 33 Corso di Sistemi Operativi - Esercitazioni (Lez.3) 34 dup() int dup(int descriptor); invoca la duplicazione di un descrittore di file descriptor: descrittore di file che si vuole duplicare un intero positivo corrispondente al nuovo descrittore di file (-1 se errore) è il più piccolo indice libero della tavola dei files aperti descriptor non identifica un canale di I/O aperto è già stato raggiunto il # max di file apribili contemporaneamente dal processo Corso di Sistemi Operativi - Esercitazioni (Lez.3) 35 Esercizio Scrivere un programma che, dato un file HTML in ingresso, scriva (su STDOUT o su file) tutto il testo non contenuto in tag HTML < >. Si utilizzi il codice del programma CPCAT, modificandolo opportunamente. Corso di Sistemi Operativi - Esercitazioni (Lez.3) 36 9
10 ANSI C Input e Output Standard ANSI L ANSI ha definito una libreria di funzioni standard per il linguaggio C (ANSI-C) che riguardano: input/output, gestione delle stringhe, routines matematiche, ; I programmi che limitano la loro interazione con il sistema alle facilities fornite da tale libreria sono portabili su sistemi diversi; Le funzioni offerte da tale libreria sono dichiarate in diversi headers: <stdio.h>, <string.h>, <ctype.h>, <math.h>, ANSI C Standard Library Sistema UNIX Sistema Windows Sistema MAC Corso di Sistemi Operativi - Esercitazioni (Lez.3) 38 Standard Input e Output Stream di testo: sequenza di linee terminate da un carattere di newline Se il sistema non opera in questo modo, la libreria fa ciò che è necessario per far sembrare che lo faccia Ogni sorgente che utilizza una delle funzioni di Input/Output offerte dalla libreria deve includere l header stdio.h: #include <stdio.h> stdin, stdout, stderr per i 3 stream di default Corso di Sistemi Operativi - Esercitazioni (Lez.3) 39 putchar() e getchar() int putchar(int ch) Manda il carattere ch allo stdout Il carattere inviato o la costante EOF se vi sono degli errori EOF è definita in <stdio.h> (solitamente -1) int getchar(void) Legge un carattere dallo stdin e lo restituisce Se non vi sono più caratteri da leggere restituisce EOF Corso di Sistemi Operativi - Esercitazioni (Lez.3) 40 10
11 Esempio Questo programma converte l input in minuscolo: #include <stdio.h> #include <ctype.h> Contiene la dichiarazione di tolower() main() /* lower: converte l input in minuscolo */ { int c; while ((c = getchar())!= EOF) putchar(tolower(c)); return (0); Corso di Sistemi Operativi - Esercitazioni (Lez.3) 41 Output formattato: printf() int printf(char *format, arg1, ); int sprintf(char *string, char *format, arg1, ); Stampa su schermo (o su stringa) una stringa formattata, costituita da due tipi di oggetti: caratteri ordinari: vengono stampati così come sono; specifiche di conversione: ognuna di esse definisce la conversione e la stampa del successivo argomento passato alla funzione Il numero di caratteri stampati Specifiche di conversione: %[-][min_width][.][precision][h/l][conver_char] Esempio: printf ( var1 = %d; var2 = %s,var1, s1); Stampa: var1 = 5; var2 = ciao, Ritorna: 21 Corso di Sistemi Operativi - Esercitazioni (Lez.3) 42 Carat. d,i o x,x u c s f e,e g,g p Caratteri di conversione Tipo arg. int int int int int char * double double double void * Stampato come Numero decimale Numero ottale unsigned (senza 0 iniziale) Numero esadecimale unsigned (senza 0x o 0X) Numero decimale unsigned Singolo carattere Stringa fino al carattere \0 o precision caratteri [-]m.dddddd, il numero di d è dato dalla precision [-]m.dddddd[e/e][+/-]xx %e o %E se l esponente è < di -4 o precision, altrimenti %f puntatore (rappresentazione dipendente dall implementazione) Corso di Sistemi Operativi - Esercitazioni (Lez.3) 43 Input formattato: scanf() int scanf(char *format, arg1, ); int sscanf(char *string, char *format, arg1, ); Legge caratteri dallo stdin, interpretandoli in base alle specifiche di format, e le memorizza nei successivi argomenti (devono essere puntatori) Si ferma al termine di format, o quando uno degli input non soddisfa la specifica Il numero di variabili lette (ed assegnate) La stringa di formato può contenere: spazi e tabulazioni (non ignorati) caratteri ordinari (non %), che si aspettano di ricevere dallo stream di input specifiche di conversione: %[*][max_width][h/l/l][conver_char] Corso di Sistemi Operativi - Esercitazioni (Lez.3) 44 11
12 Esempio Programma che riconosce date nei formati: GG Mese Anno (20 Marzo 2003) GG/MM/AA (20/03/03) int giorno, mese, anno; char nomemese[20]; while (getline(linea, sizeof(linea), stdin) > 0) { if (sscanf(linea, %d %s %d, &giorno, nomemese, &anno) == 3) printf( Valido: %s\n, linea); else if (sscanf(linea, %d/%d/%d, &giorno, &mese, &anno) == 3) printf( Valido: %s\n, linea); else printf( Non valido: %s\n, linea); Corso di Sistemi Operativi - Esercitazioni (Lez.3) 45 Manipolazione di stringhe Funzioni definite in <string.h>: strcat(s,t): concatena t alla fine di s strncat(s,t,n): concatena n caratteri di t alla fine di s strcmp(s,t): confronto, ritorna un numero negativo, nullo o positivo se s<t, s==t, s>t strncmp(s,t,n): confronta solo i primi n caratteri strcpy(s,t): copia t in s strncpy(s,t,n): copia al più n caratteri di t in s strlen(s): ritorna la lunghezza di s strchr(s,c): ritorna il puntatore alla prima occorrenza di c in s, o NULL se non presente Corso di Sistemi Operativi - Esercitazioni (Lez.3) 46 Accesso ai file E possibile aprire ulteriori streams, oltre ai 3 standard forniti dal sistema, invocando: FILE *fopen(char* filename, char* mode); filename: stringa contenente il nome del file da aprire; mode: stringa che indica il tipo di accesso al file ( r lettura, w scrittura, a append, b binario) Fa un opportuna richiesta al S.O. e ritorna un puntatore da utilizzare nelle successive operazioni di lettura/scrittura Se il file indicato non esiste: se si accede in modo w o a il file viene creato; se si accede in modo r la funzione ritorna NULL; Corso di Sistemi Operativi - Esercitazioni (Lez.3) 47 Struttura FILE Il puntatore punta alla struttura FILE (definita in <stdio.h>), che contiene informazioni sul file aperto, tra cui: posizione del buffer posizione del carattere corrente nel buffer modalità di apertura file eventuali errori occorsi Anche stdin, stdout e stderr sono dei puntatori a FILE: sono assegnati dal S.O. all avvio di un programma e sono costanti Corso di Sistemi Operativi - Esercitazioni (Lez.3) 48 12
13 getc(), putc(), fscanf(), fprintf() int putc(int c, FILE *fp); int getc(file *fp); int fprintf(file *fp, char *format, ); int fscanf(file *fp, char *format, ); Sono le generalizzazioni a stream non standard di putchar(), getchar(), printf() e scanf(); Ridefinizione: #define getchar() getc(stdin) #define putchar(c) putc((c), stdout) #define printf(format, ) fprintf(stdout, format, ) #define scanf(format, ) fscanf(stdin, format, ) Corso di Sistemi Operativi - Esercitazioni (Lez.3) 49 Chiusura di un file int fclose(file *fp); Rompe la connessione fra il puntatore ed il file creata con fopen(); Stesse considerazioni delle corrispondenti system calls: Limite massimo al numero di files aperti contemporaneamente chiudere i files non più utilizzati Scarica il buffer delle chiamate putc e getc E invocato automaticamente per ogni file aperto alla terminazione (normale) di un programma Corso di Sistemi Operativi - Esercitazioni (Lez.3) 50 System call vs Funzioni di libreria System calls Standard Posix (UNIX) Codice in kernel space Prestazioni (?) Funzioni: memoria input/output processi comunicazione sincronizzazione gestione eventi asincroni utilities Funzioni di libreria Standard ANSI (C) Codice in process space Portabilità Funzioni: memoria input/output gestione eventi asincroni utilities In UNIX implementate tramite system calls Corso di Sistemi Operativi - Esercitazioni (Lez.3) 51 Esercizio Realizzare il programma cpcat visto precedentemente, utilizzando esclusivamente funzioni standard ANSI C Corso di Sistemi Operativi - Esercitazioni (Lez.3) 52 13
Corso di Sistemi Operativi Programmazione di Sistema e Concorrente
Università di Roma La Sapienza Dipartimento di Informatica e Sistemistica Corso di Sistemi Operativi Programmazione di Sistema e Concorrente Lezione III Gestione dell Input/Output System Calls Argomenti
DettagliEsercitazione 4. Gestione dei file in Unix
Esercitazione 4 Gestione dei file in Unix Primitive fondamentali (1/2) open close Apre il file specificato e restituisce il suo file descriptor (fd) Crea una nuova entry nella tabella dei file aperti di
DettagliCorso di Informatica A.A
Corso di Informatica A.A. 2009-2010 Lezione 13 Corso di Informatica 2009-2010 Lezione 13 1 Input/output da file Stream Si definisce stream una sequenza di bytes di dati che può essere in ingresso (input
DettagliIl linguaggio C. Breve panoramica su stdio.h
Il linguaggio C Breve panoramica su stdio.h 1 Input/Output: stdio.h Contiene definizioni di costanti legate all I/O es. EOF (end of file) #define EOF (-1) valore restituito alla fine di un file Contiene
DettagliLaboratorio di Sistemi Operativi
II Semestre - Marzo/Giugno 2008 matricole congr. 0 mod 3 I/O non bufferizzato System Call open close read write lseek 2 1 file descriptor sono degli interi non negativi il kernel assegna un file descriptor
DettagliCorso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Unità 9 File
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Unità 9 File D. Bloisi, A. Pennisi, S. Peluso, S. Salza, C. Ciccotelli Sommario Input/Output
DettagliOperazioni su file di caratteri
Operazioni su file di caratteri Apertura fopen Chiusura fclose Scrittura fprintf Lettura fscanf Controllo fine file feof Prof. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1 Apertura di un file: Si
DettagliLibrerie C. Corso di Linguaggi e Traduttori 1 AA Corso di Linguaggi e Traduttori 1 AA stdio.h
Corso di Linguaggi e Traduttori 1 AA 2004-05 1 Corso di Linguaggi e Traduttori 1 AA 2004-05 stdio.h 2 Funzioni comuni di I/O? Le piu' comuni funzioni che permettono I/O sono getchar() e putchar():? int
DettagliStreams e disk files
Streams e disk files Streams Un canale è una sequenza di byte di dati Sorgente o destinazione di dati che possono essere associati ad un disco o ad altre periferiche Due tipi di stream: Testo: sequenza
DettagliLaboratorio di Programmazione
Laboratorio di Programmazione (Laurea triennale in matematica) Lezione 26 Sommario: Gestione dei file in C. File ad accesso sequenziale: apertura, chiusura, lettura e scrittura. File binari. Gestione files
DettagliFile binari e file di testo
I file File binari e file di testo distinzione tra file binari file di testo si possono usare funzioni diverse per la gestione di tipi di file diversi Programmazione Gestione dei file 2 File binari e file
DettagliLibrerie C. Corso di Linguaggi e Traduttori 1 AA
Corso di Linguaggi e Traduttori 1 AA 2004-05 1 Corso di Linguaggi e Traduttori 1 AA 2004-05 stdio.h 2 Funzioni comunidi I/O? Le piu' comuni funzioni che permettono I/O sono getchar() e putchar():? int
DettagliLa gestione dell'errore
La gestione dell'errore Esiste una variabile globale intera, definita nell'header errno.h che viene settata nel caso in cui una chiamata di sistema non possa eseguire correttamente il suo compito. Tale
DettagliCapitolo 5 -- Stevens
Libreria standard di I/O Capitolo 5 -- Stevens Libreria standard di I/O rientra nello standard ANSI C perché è stata implementata su molti sistemi operativi oltre che su UNIX le sue funzioni individuano
DettagliSystem calls. permettono ai programmi utente di richiedere servizi al Sistema Operativo. servizi come scrittura di file, stampa su video, ecc.
Le System Calls System calls permettono ai programmi utente di richiedere servizi al Sistema Operativo servizi come scrittura di file, stampa su video, ecc. corrispondenti procedure di libreria GNU C Library
DettagliLezione 22: Input/Output e Files
Lezione 22: Input/Output e Files Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università di Salerno Struttura della lezione Esami: date e modalità Funzioni di libreria standard
DettagliPer operare su un file abbiamo bisogno di aprirlo, scriverlo, leggerlo, chiuderlo:
I/O (Input/Output) System Call di I/O 2 Per operare su un file abbiamo bisogno di aprirlo, scriverlo, leggerlo, chiuderlo: open (e creat) write read close lseek 1 File descriptors 3 File descriptor (fd)
DettagliSistemi Operativi Teledidattico
Sistemi Operativi Teledidattico Anno 2002 3a esercitazione 5/10/2002 Paolo Torroni processi fork (creazione di un figlio) exec (sostituzione di codice del programma in esecuzione) wait (attesa della terminazione
DettagliGestione dei File. Credits Prof. Campi
Gestione dei File Credits Prof. Campi 1 Perché i file? Sono strutture dati persistenti Sono solitamente memorizzati sui dischi Si usano dall'interno dei programmi Realizzano la persistenza dei dati cioè
DettagliEsercitazione di Lab. di Sistemi Operativi 1 a.a. 2011/2012
Sommario: Esercitazione di Lab. di Sistemi Operativi 1 a.a. 2011/2012 - System Call Parte 1 open (apertura file) creat (creazione file) close (chiusura file) write (scrittura file) read (lettura file)
DettagliIntroduzione al C. Unità 9 File. D. Bloisi, S. Peluso, A. Pennisi, S. Salza
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Unità 9 File D. Bloisi, S. Peluso, A. Pennisi, S. Salza Sommario Input/Output Stream
Dettagli&& (nessun altro processo ha il file aperto) && (il fd e chiuso) Cancella il file;
CREAZIONE ritorna fd o 1 Pseudocodice dell operazione: If(file esiste) If(Write permission) Tronca la lunghezza a 0 e lascia il file aperto in scrittura; Else Exit(-1); Else Alloca un nuovo INODE con link=1
DettagliInput/Output. Lettura e scrittura Caratteri e Stringhe: Terminale e file. Input/output. caratteri stringhe formattato ascii binari
Input/Output Lettura e scrittura Caratteri e Stringhe: Terminale e file Input/output console file caratteri stringhe formattato ascii binari Linguaggio ANSI C Input/Output - 1 La libreria standard del
DettagliIl File-System. I file in ambiente Linux Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino
Il File-System I file in ambiente Linux Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino 2 File System Il file-system è uno degli aspetti più visibili di un sistema operativo
DettagliDigressione: man 2...
Syscall File I/O Digressione: man 2... Le funzioni della libreria standard UNIX associate alle system call di Linux sono documentate nella sezione 2 di man e.g.: man 2 open Ogni manpage di system call
DettagliLe librerie standard. ! La libreria standard del C è in realtà un insieme di librerie
! La libreria standard del C è in realtà un insieme di librerie! Per usare una libreria, non occorre inse -rirla esplicitamente nel progetto: ogni ambiente di sviluppo sa già dove cercarle! Ogni file sorgente
DettagliGESTIONE DEI FILE IN C. Docente: Giorgio Giacinto AA 2008/2009
Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria per l Ambiente ed il Territorio Corso di Laurea Specialistica in Ingegneria Civile - Strutture FONDAMENTI DI INFORMATICA 2
DettagliDIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. File. Marco D. Santambrogio Ver. aggiornata al 6 Marzo 2016
File Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 6 Marzo 2016 Obiettivi Il salvataggio dei dati File File e OS File in C 2 3 I programmi che abbiamo considerato finora. Perdono
DettagliLIBRERIE STANDARD in C. LIBRERIE STANDARD in C
LIBRERIE STANDARD in C La libreria standard del C è in realtà un insieme di librerie Per usare una libreria, non occorre inserirla esplicitamente nel progetto: ogni ambiente di sviluppo sa già dove cercarle
DettagliIntroduzione. L elaborazione dei files in C. Elaborazione dei files (1) Elaborazione dei files (2) D.D. cap. 11+ pp K.P. pp.
Introduzione L elaborazione dei files in C D.D. cap. 11+ pp. 569-572 K.P. pp. 581-583 La memorizzazione dei dati nelle variabili e nei vettori è temporanea: tutti quei dati andranno persi quando il programma
DettagliSulla libreria standard, III. Manipolare file con stdio.h
Sulla libreria standard, III Manipolare file con stdio.h 1 Libreria per input/output Con libreria si intende una collezione di sottoprogrammi che vengono utilizzati per lo sviluppo di software non eseguibili,
DettagliLaboratorio di Sistemi Operativi primavera 2009 open
primavera 2009 open System Call close read I/O non bufferizzato write lseek 2 file descriptor file descriptor...ancora sono degli interi non negativi il kernel assegna un file descriptor ad ogni file aperto
DettagliI files (archivi) Il C definisce in stdio.h tre file aperti automaticamente: stdin, stdout e stderr.! Sono ad accesso sequenziale diretto
C I files di dati I files (archivi) Files di programmi sono solo gestiti dal compilatore C Files di dati Possono essere creati, aggiornati, letti, scritti da programmi C Servono per conservare dati su
DettagliDIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. File. Marco D. Santambrogio Ver. aggiornata al 21 Maggio 2014
File Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 21 Maggio 2014 Obiettivi Il salvataggio dei dati File File e OS File in C 2 3 I programmi che abbiamo considerato finora. Perdono
DettagliFiles, File I/O. Franco Maria Nardini
Files, File I/O Franco Maria Nardini UNIX file types UNIX non richiede una struttura interna del file. Dal punto di vista del sistema operativo c è un solo tipo di file. Struttura e interpretazione sono
DettagliLinguaggio C: i file
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica A - GES Prof. Plebani A.A. 2006/2007 Linguaggio C: i file La presente dispensa e da utilizzarsi ai soli fini didattici previa
DettagliDIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. File. Marco D. Santambrogio Ver. aggiornata al 15 Maggio 2015
File Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 15 Maggio 2015 2nda prova in itinere Era il 21 Maggio 2 2nda prova in itinere Era il 21 Maggio Spostata (da 3 settimane) al 22
DettagliIntroduzione al C. Stream e disk file
Introduzione al C Stream e disk file Stream Un canale è una sequenza di byte di dati Sorgente o destinazione di dati che possono essere associati ad un disco o ad altre periferiche Due tipi di stream:
DettagliLezione 11: Liste a Puntatori e Input/Output
Lezione 11: Liste a Puntatori e Input/Output Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione Richiamo: strutture (struct)
DettagliLe strutture. Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune.
Le strutture Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune. Dichiarazione di una struttura: struct point { int x; int y; }; La dichiarazione di una struttura
DettagliGestione dei file. Stefano Ferrari. Università degli Studi di Milano Programmazione. anno accademico
Gestione dei file Stefano Ferrari Università degli Studi di Milano stefano.ferrari@unimi.it Programmazione anno accademico 2016 2017 Gli stream Si dice stream qualsiasi sorgente di dati in ingresso e qualsiasi
DettagliCorso di Laboratorio di Sistemi Operativi A.A
Corso di Laboratorio di Sistemi Operativi A.A. 2016 2017 Lezione 14 Ivan Scagnetto ivan.scagnetto@uniud.it Nicola Gigante gigante.nicola@spes.uniud.it Dipartimento di Scienze Matematiche, Informatiche
DettagliCorso di Fondamenti di Programmazione canale E-O. Introduzione. Elaborazione dei files (2)
Corso di Fondamenti di Programmazione canale E-O Tiziana Calamoneri L elaborazione dei files in C DD, Cap. 11 + pp. 569-572 KP, pp. 581-583 Introduzione La memorizzazione dei dati nelle variabili e nei
DettagliSistemi Operativi (M. Cesati)
Sistemi Operativi (M. Cesati) Compito scritto del 17 febbraio 2014 Nome: Matricola: Corso di laurea: Cognome: Crediti da conseguire: 5 6 9 Scrivere i dati richiesti in stampatello. Al termine consegnare
DettagliI files in C. A cura del prof. Ghezzi
I files in C A cura del prof. Ghezzi 1 Perchè i files? Realizzano la persistenza dei dati dati che sopravvivono all esecuzione del programma Sono delle strutture di dati sequenziali 2 Files e S.O. I files
DettagliUniversità di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2016-17 Pietro Frasca Lezione 23 Martedì 17-01-2017 Il file system Il file system si basa sulle astrazioni
DettagliUniversità degli Studi di Milano
Università degli Studi di Milano Corso di Laurea in Sicurezza dei Sistemi e delle Reti Informatiche Lezione 1 Introduzione ai file FABIO SCOTTI LABORATORIO DI PROGRAMMAZIONE PER LA SICUREZZA Modulo 5 -
DettagliUniversità di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2016-17 Pietro Frasca Lezione 20 Giovedì 22-12-2016 Comunicazione: pipe In Unix, processi possono comunicare
DettagliInput / Output. Come già detto, input e output sono realizzati in C da funzioni di stdio.h all'interno della libreria standard
Stdio.h Input / Output Come già detto, input e output sono realizzati in C da funzioni di stdio.h all'interno della libreria standard Sia i file che i dispositivi (tastiera, schermo...) sono visti come
DettagliI puntatori. Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore
I puntatori Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore...... L operatore & fornisce l indirizzo di un oggetto: p = &c; assegna a p l indirizzo di c, i.e., p
DettagliUniversità degli Studi di Milano
Università degli Studi di Milano Corso di Laurea in Sicurezza dei Sistemi e delle Reti Informatiche Lezione 13 e 14 Introduzione ai file FABIO SCOTTI LABORATORIO DI PROGRAMMAZIONE PER LA SICUREZZA 1. Concetti
DettagliIgino Corona
Sistemi Operativi Esercitazione 6: Comunicazione fra processi in Linux PIPE Igino Corona igino.corona@diee.unica.it 17 Novembre 2009 File In Linux, un le può essere un contenitore di informazione o uno
DettagliComandi. Sistema Operativo
Introduzione Programmazione di sistema in UNIX File comandi utente Shell Comandi Sistema Operativo Programmi in C Servizi di sistema (primitive, system call) solo per driver fork exec wait exit char I/O
DettagliELEMENTI DI INFORMATICA. Linguaggio C
Università degli Studi di Cagliari Corso di Laurea in Ingegneria Elettronica ELEMENTI DI INFORMATICA http://agile.diee.unica.it A.A. 2015/2016 Ing. Marco Ortu Diee, secondo piano Tel. 070-6755774 mail:
DettagliUniversità di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2017-18 Pietro Frasca Lezione 9 Giovedì 2-11-2017 Comunicazione con pipe Oltre che con la memoria condivisa
DettagliDati due punti sul piano calcolare la loro distanza
Introduzione al C Primo esempio in C Dati due punti sul piano calcolare la loro distanza Soluzione: la distanza fra due punti si calcola secondo il teorema di Pitagora, con la formula: y Distanza = (lato12
DettagliLABORATORIO DI SISTEMI OPERATIVI
LABORATORIO DI SISTEMI OPERATIVI Corso di Laurea Triennale in Ingegneria Informatica A.A. 2018/2019 Guglielmo Cola Email: g.cola@iet.unipi.it Web: iet.unipi.it/g.cola Organizzazione del filesystem Meccanismo
DettagliIl File System di Unix
Il File System di Unix 1 Il File System di UNIX Organizzazione logica / bin etc usr dev anna paolo.profile file1 mbox testi... Sistemi Operativi L A - Il File System di Unix 2 2 Il File System di UNIX
DettagliUNIX file system: organizzazione logica. Il File System di UNIX. UNIX file system: organizzazione fisica
UNIX file system: organizzazione logica / Il File System di UNIX omogeneità: tutto è file tre categorie di file file ordinari direttori bin.profile etc usr dev anna file1 paolo mbox dispositivi fisici:
DettagliLaboratorio di Sistemi Operativi
II Semestre - Marzo/Giugno 2008 matricole congr. 0 mod 3 I/O non bufferizzato-2 dup, dup2 System Call sync, fsync, fdatasync fcntl 2 1 Condivisione di file Unix supporta la possibilità che più processi
DettagliLezione 7: Funzioni e gestione dei File
Lezione 7: Funzioni e gestione dei File Laboratorio di Elementi di Architettura e Sistemi Operativi 18 Aprile 2012 Le funzioni Funzioni Un programma C consiste di una o più funzioni Almeno main() Funzionamento
DettagliFile I/O. M. R. Guarracino: File I/O 1
File I/O M. R. Guarracino: File I/O 1 File I/O Gran parte delle operazioni su file in ambiente UNIX possono essere eseguite utilizzando solo cinque funzioni: open read write lseek close M. R. Guarracino:
DettagliPremessa. Input /output e gestione dei file. I file e gli stream. Il puntatore al file. 21. I FILE NEL LINGUAGGIO C Versione 1.
Input /output e gestione dei file Premessa Iniziamo la lezione dicendo subito che per INPUT/OUTPUT si intende l insieme delle operazioni di ingresso ed uscita, ossia lo scambio di informazioni tra il programma
DettagliLe strutture. Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune.
Le strutture Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune. Dichiarazione di una struttura: struct point { int x; int y; }; La dichiarazione di una struttura
DettagliIl File System di UNIX
Il File System di UNIX UNIX file system: organizzazione logica / bin etc usr dev omogeneità: tutto è file tre categorie di file file ordinari direttori anna paolo.profile file1 mbox testi... dispositivi
DettagliDIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. File. Marco D. Santambrogio Ver. aggiornata al 15 Maggio 2013
File Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 15 Maggio 2013 Obiettivi Alcuni problemi aperti Il main() Allocazione dinamica della memoria Il salvataggio dei dati File File
DettagliInput / Output. Come già detto, input e output sono realizzati in C da funzioni di stdio.h all'interno della libreria standard
Stdio.h Input / Output Come già detto, input e output sono realizzati in C da funzioni di stdio.h all'interno della libreria standard Sia i file che i dispositivi (tastiera, schermo...) sono visti come
DettagliArchitettura dei calcolatori e sistemi operativi. Input Output. IO 2 Il File System
Architettura dei calcolatori e sistemi operativi Input Output IO 2 Il File System File System E quel componente del Sistema Operativo che realizza i servizi di gestione dei file file: unità di archiviazione
DettagliProgrammazione di sistema in Linux: gestione dei file. E. Mumolo
Programmazione di sistema in Linux: gestione dei file E. Mumolo Struttura di Linux System Call per il file system System Call per i processi Hardware: dischi, CPU, monitor, tastiera, schede di rete, porte
DettagliFiles in C endofile
Files in C Il C vede i file semplicemente come un flusso (stream) sequenziale di bytes terminati da un marcatore speciale che determina la fine del file (end-of-file). 0 1 2 3 4... endofile A differenza
DettagliInput/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE
Input/output da file Il linguaggio C non contiene istruzioni di I/O, in quanto tali operazioni vengono eseguite tramite funzioni di libreria standard. Questo approccio rende estremamente flessibile e potente
DettagliGestione dei file in C
Gestione dei file in C Fondamenti di Informatica Che cos è un file e a cosa serve? Memoria di massa vs memoria centrale q La memoria di massa (disco fisso) è un dispositivo di memorizzazione generalmente
DettagliSettimana n.12. Obiettivi File!di!testo. Contenuti Concetto!di!file!e!funzioni! fopen/fclose Funzioni!fgets+sscanf Approfondimenti!su!printf! e!
Settimana n.12 Obiettivi File!di!testo Contenuti Concetto!di!file!e!funzioni! fopen/fclose Funzioni!fgets+sscanf Approfondimenti!su!printf! e!scanf 437 Files Vista d insieme dei formati di file File File
DettagliL accesso ai dispositivi esterni (tastiera, monitor, file,...) viene gestito mediante canali di comunicazione.
I file L accesso ai dispositivi esterni (tastiera, monitor, file,...) viene gestito mediante canali di comunicazione. I canali, sono delle strutture dati che contengono informazioni sul dispositivo fisico,
DettagliSistemi Operativi (M. Cesati)
Sistemi Operativi (M. Cesati) Compito scritto del 1 febbraio 2016 Nome: Matricola: Corso di laurea: Cognome: Crediti da conseguire: 5 6 9 Scrivere i dati richiesti in stampatello. Al termine consegnare
DettagliSommario. Manipolazione sequenziale di file in C Funzioni di base per I/O di file
File Input/Output 1 Sommario Manipolazione sequenziale di file in C Funzioni di base per I/O di file 2 Manipolazione di file I file devono essere aperti prima dell uso Associa un puntatore a file a ogni
DettagliIndice. La gestione dei file in C e gli stream. Apertura e chiusura di un file. Operazioni sui file. Accesso sequenziale e non sequenziale
File in C Indice La gestione dei file in C e gli stream Apertura e chiusura di un file Operazioni sui file Accesso sequenziale e non sequenziale Gestione dei file in C In C all interno della standard library
DettagliLaboratorio di Sistemi Operativi primavera 2009
primavera 2009 Libreria standard di I/O Libreria standard di I/O rientra nello standard ANSI C perché è stata implementata su molti sistemi operativi oltre che su UNIX le sue funzioni individuano il file
DettagliCORSO DI SISTEMI OPERATIVI A - ESERCITAZIONE 3. 1 strace : visualizzazione delle system call invocate da un processo
UNIVERSITÀ DEGLI STUDI DI PARMA Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica a.a. 2005-2006 CORSO DI SISTEMI OPERATIVI A - ESERCITAZIONE 3 1 strace : visualizzazione delle system call
DettagliLa creazione di un nuovo processo in UNIX
La creazione di un nuovo processo in UNIX #include int fork(void); Viene creato un nuovo processo (figlio) identico (stesso codice, area dati copiata) al processo (padre) che ha invocato la
DettagliProgrammazione di sistema in UNIX. Immagine di un processo in UNIX. Area dati. File comandi utente
Programmazione di sistema in UNIX File comandi utente Shell Gestione processi Comandi Sistema Operativo Servizi di sistema (primitive, system call) fork exec wait exit char I/O block I/O open create close
DettagliGestione dei file in C
Gestione dei file in C Fondamenti di Informatica Che cos è un file e a cosa serve? Memoria di massa vs memoria centrale q La memoria di massa (disco fisso) è un dispositivo di memorizzazione generalmente
DettagliIntroduzione alla programmazione in linguaggio C
Introduzione alla programmazione in linguaggio C Il primo programma in C commento Header della libreria Funzione principale Ogni istruzione in C va terminata con un ; Corso di Informatica AA. 2007-2008
DettagliCORSO DI SISTEMI OPERATIVI A - ESERCITAZIONE 3
UNIVERSITÀ DEGLI STUDI DI PARMA Facoltà di Ingegneria Corso di Laurea in Ingegneria Elettronica-Informatica-Telecomunicazioni a.a. 2001-2002 CORSO DI SISTEMI OPERATIVI A - ESERCITAZIONE 3 1 Trasferimento
DettagliLa Comunicazione tra Processi in Unix
La Comunicazione tra Processi in Unix La è un canale di comunicazione tra processi: unidirezionale: accessibile ad un estremo in lettura ed all'altro in scrittura molti-a-molti: più processi possono spedire
DettagliLaboratorio di Informatica Ingegneria Clinica Lezione 30/11/2011
Laboratorio di Informatica Ingegneria Clinica Lezione 30/11/2011 Raffaele Nicolussi FUB - Fondazione Ugo Bordoni Via del Policlinico, 147 00161 Roma I/O in C Il sistema di I/O del C è una interfaccia uniforme
DettagliIntroduzione al C. Esercitazione 6. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria Clinica
Corso di Fondamenti di Informatica Ingegneria Clinica Domenico Daniele Bloisi Informazioni Generali ing. Domenico Daniele Bloisi Dipartimento di Informatica e Sistemistica Stanza B213, secondo piano Via
DettagliI file Laboratorio di Linguaggi di Programmazione a.a. 2001/2002
I file Laboratorio di Linguaggi di Programmazione a.a. 2001/2002 dott.ssa Francesca A. Lisi lisi@di.uniba.it Sommario Generalità sui file in C I file ad accesso sequenziale I file di testo Riferimenti
DettagliLaboratorio di Sistemi Operativi Marzo-Giugno 2008 Matricole congrue 0 mod 3
Marzo-Giugno 2008 Matricole congrue 0 mod 3 Libreria standard di I/O Libreria standard di I/O Permette di fare I/O senza doversi preoccupare di problematiche di bufferizzazione Definizione del buffer Taglia
DettagliI File. Il file e` l'unita` logica di memorizzazione dei dati su memoria di massa.
I File Il file e` l'unita` logica di memorizzazione dei dati su memoria di massa. Consente una memorizzazione persistente dei dati, non limitata dalle dimensioni della memoria centrale. Generalmente un
DettagliIl processo figlio : utilizza lo stesso codice che sta eseguendo il padre ;
La creazione di un nuovo processo in UNIX int fork(void); Viene creato un nuovo processo (figlio) identico (stesso codice, area dati copiata) al processo (padre) che ha invocato la fork Solo il valore
DettagliSistemi Operativi (M. Cesati)
Sistemi Operativi (M. Cesati) Compito scritto del 7 settembre 2012 Nome: Matricola: Corso di laurea: Cognome: Crediti da conseguire: 5 6 9 Scrivere i dati richiesti in stampatello. Al termine consegnare
DettagliGESTIONE DEI FILE IN C
GESTIONE DEI FILE IN C Il concetto di file.. è una parte logicamente contigua del contenuto di un dispositivo! Deve essere capace di memorizzare grandi quantità di dati! I dati memorizzati devono sopravvivere
DettagliInput-Output di basso livello
Input-Output di basso livello File in UNIX Il kernel di UNIX vede tutti i file come flussi non formattati di byte; il compito di interpretare ogni struttura logica interna ad un file e lasciato alle applicazioni.
DettagliSistemi Operativi (M. Cesati)
Sistemi Operativi (M. Cesati) Compito scritto del 28 giugno 2016 (Traccia A) Nome: Matricola: Corso di laurea: Cognome: Crediti da conseguire: 5 6 9 Scrivere i dati richiesti in stampatello. Al termine
Dettagli