argc, argv, getopt acquisizione e gestione di argomenti e opzioni da linea di comando
|
|
- Michelangelo Valente
- 7 anni fa
- Visualizzazioni
Transcript
1 argc, argv, getopt acquisizione e gestione di argomenti e opzioni da linea di comando
2 utilizzo dati.txt risultati.txt Si esegue il programma calcola, passando come informazione il nome di due file: dati.txt (dove sono contenuti i dati da elaborare) e risultati.txt (dove salvare i risultati)! user@mac:./fattoriale 7 Si esegue il programma fattoriale, che calcola il fattoriale del valore indicato come parametro (7 nell esempio) il programma non interagisce con l utente, ma riceve tutte le informazioni necessarie scanf gets all avvio
3 argc e argv int main(int argc, char * argv[]) {... gli argomenti return 0; ricevuti in ingresso } numero di argomenti ricevuti in ingresso
4 argc e argv il primo argomento che si riceve è SEMPRE il nome del programma (completo di percorso...) la prima stringa digitata sulla riga di comando quindi è SEMPRE argc >= 1 user@mac:./listaargomenti uno due tre quattro quanto varrà argc?
5 esempio #include <stdio.h>! int main(int argc, char * argv[]) { int i;! } for(i = 0; i < argc; i++) printf("argomento %d: %s\n", i, argv[i]); printf("totale: %d argomenti\n", argc); return 0;
6 esempio - esecuzione user@mac:./listaargomenti uno due tre quattro argomento 0:./listaargomenti argomento 1: uno argomento 2: due argomento 3: tre argomento 4: quattro totale: 5 argomenti user@mac:
7 argc e argv int main(int argc, char * argv[]) {... return 0; } gli argomenti ricevuti in ingresso sono tutte stringhe char * argv[] di stringhe array
8 argc e argv gli argomenti sono acquisiti come stringhe, se rappresentano un informazione (un valore intero ad esempio) diversa vanno convertiti user@mac:./contacaratteri miofile.txt il secondo parametro è di fatto una stringa, potrà essere usato così user@mac:./fattoriale 27 il secondo parametro è un intero, andrà convertito
9 argc e argv int main(int argc, char * argv[]) { char * nomefile, c; FILE * fp; int n; nomefile = argv[1]; if(fp = fopen(nomefile, "r")){ n = 0; fscanf(fp, "%c", &c); while(!feof(fp)){ n++; fscanf(fp, "%c", &c); } fclose(fp); printf("%d\n", n); } else printf("file non accessibile %s\n", nomefile); return 0; }
10 esempio completo / 1 #include <stdio.h> #include <stdlib.h> #include <string.h>! #define SEP '/'! void showprogmissingarg(char *); void showprogusage(char *);
11 esempio completo / 2 int main(int argc, char * argv[]) { char * nomefile, * eseguibile, c; FILE * fp; int n, l, i, found; /* argv[0]: nome dell'eseguibile con il percorso... */ l = strlen(argv[0]); for(i = l, found = 0; i >= 0 &&!found; i--) if(argv[0][i] == SEP) found = 1; if(i < 0) eseguibile = argv[0]; else eseguibile = &(argv[0][i+2]);
12 esempio completo / 3 if(argc!= 2){ showprogmissingarg(eseguibile); showprogusage(eseguibile); exit (1); }
13 esempio completo / 4! nomefile = argv[1]; if(fp = fopen(nomefile, "r")){ n = 0; fscanf(fp, "%c", &c); while(!feof(fp)){ n++; fscanf(fp, "%c", &c); } fclose(fp); printf("%d\n", n); } else printf("file non accessibile %s\n", nomefile);
14 esempio completo / 5 void showprogmissingarg(char * progname) { printf("%s: argomento mancante\n", progname); return; }! void showprogusage(char * progname) { printf("uso: %s NOMEFILE\n", progname); return; }
15 esempio - esecuzione user@mac:./contacaratteri contacaratteri: argomento mancante Uso: contacaratteri NOMEFILE user@mac:./contacaratteri./miofile.txt 60 user@mac:
16 argv:conversione di tipo int string2integer(char *);! int main(int argc, char * argv[]) { int fatt, n; n = string2integer(argv[1]); if(n > 0){ for(fatt = 1; n > 1; n--) fatt = fatt *n; printf("%d\n", fatt); } else printf("uso: fattoriale NUM_NON_NEGATIVO\n"); return 0; }
17 string2integer int string2integer(char * numero){ int valore; int ncifre, i, po, numinit, sign; ncifre = strlen(numero); if(numero[0] == NEG){ numinit = 1; sign = -1; } else { numinit = 0; sign = 1; } for(i = ncifre-1, po = 1, valore = 0; i >= numinit; i--, po = po*base) valore = valore + (numero[i] - '0')*po; return sign*valore; }
18 atoi int main(int argc, char * argv[]) { int fatt, n; n = atoi(argv[1]); if(n > 0){ for(fatt = 1; n > 1; n--) fatt = fatt *n; printf("%d\n", fatt); } else printf("uso: fattoriale NUM_NON_NEGATIVO\n"); return 0; }
19 argomenti dati.txt risultati.txt l ordine con cui vengono scritti gli argomenti è importante la flessibilità è limitata (bisogna ricordarsi l ordine giusto) alcuni argomenti potrebbero essere facoltativi (opzioni)
20 opzioni specifica di opzioni nell esecuzione del programma miofile.txt -a conta i caratteri presenti in un file: solamente quelli alfanumerici user@mac:./contacaratteri miofile.txt -M conta i caratteri presenti in un file: solamente i caratteri alfanumerici maiuscoli
21 opzioni -h Usage: frequency [options] INPUTFILE -h --help Displays this information -a --alpha Use only alphanumerical -t --threshold VALUE The threshold for results -o --output FILENAME Write output to file -v --verbose Print verbose messages
22 opzioni gestione manuale: acquisizione ed analisi di tutti i valori presenti in argv coppia opzione - valore -t --threshold VALUE utilizzo di sottoprogramma di libreria: getopt
23 getopt int main (int argc, char* argv[]){... /* stringa che specifica opzioni brevi valide */ const char* short_options = "hat:o:v"; /* che descrive le opzioni lunghe */ const struct option long_options[] = { { "help", 0, NULL, 'h' }, { "alpha", 0, NULL, 'a' }, { "threshold", 1, NULL, 't' }, { "output", 1, NULL, 'o' }, { "verbose", 0, NULL, 'v' }, { NULL, 0, NULL, 0} /*req. end of array */ };
24 getopt int main (int argc, char* argv[]){... l opzione NON è seguita da un valore /* stringa che specifica opzioni brevi valide */ const char* short_options = "hat:o:v"; /* che descrive le opzioni lunghe */ const struct option long_options[] = { { "help", 0, NULL, 'h' }, l opzione prevede un valore opzione lunga }; { "alpha", 0, NULL, 'a' }, { "threshold", 1, NULL, 't' }, { "output", 1, NULL, 'o' }, { "verbose", 0, NULL, 'v' }, opzione breve { NULL, 0, NULL, 0} /*req. end of array */
25 getopt /* program management */ int next_option; int blnalpha; /* working only on alphanumerical */ int threshold; /* show only above threshold */ char * input_filename = NULL; char * output_filename = NULL; int verbose; /* whether to display verbose messages. */!
26 getopt_long while ((next_option = getopt_long (argc, argv, short_options, long_options, NULL)!= -1) { /* gets the next option on the command line */ if(next_option == h ){ /* display help */ print_usage(stdout, 0); } else if (next_option == ) {... } else { /* unexpected option */ abort(); } }
27 getopt_long blnalpha = 0; threshold = 0; while ((next_option = getopt_long (argc, argv, short_options, long_options, NULL))!= -1) { if(next_option == 'h'){ /* -h or --help */ print_usage (stdout, 0); } else if(next_option == 'a') { /* -a or --alpha */ blnalpha = 1; } else if (next_option == 't') { /* -t or --threshold */ threshold = atoi(optarg); }
28 getopt_long } } else if(next_option == 'o'){ /* -o or --output */ output_filename = optarg; } else if (next_option == 'v'){ /* -v or --verbose */ verbose = 1; } else if (next_option == '?'){ /* The user gave an invalid option. */ print_usage (stderr, 1); } else /* unexpected situation */ abort();
29 print_usage void print_usage (FILE* stream, int exit_code) { fprintf (stream, "Usage: %s [options] INPUTFILE\n", program_name); } fprintf (stream, " -h --help Displays this information " " -a --alpha Use only alphanumerical " " -t --threshold VALUE The threshold for results " " -o --output FILENAME Write output to file " " -v --verbose Print verbose messages.\n"); exit (exit_code);
30 getopt while ((next_option = getopt (argc, argv, "hat:o:v"))!= -1) { /* gets the next option on the command line */ if(next_option == h ){ /* display help */ print_usage(stdout, 0); } else if (next_option == ) {... } else { /* unexpected option */ abort(); } }
31 sorgenti organizzati in file e Makefile organizzazione modulare del codice
32 organizzare il codice utilizzo di file diversi, contenenti sottoprogrammi di utilità, ri-utilizzabili anche in altre occasioni sottoprogrammi sulla gestione e manipolazione di liste sottoprogrammi di utilizzo comune (fattoriale, numero di combinazioni, permutazioni,...)
33 file di sottoprogrammi file contenente i prototipi: header file (.h) file contenente i sottoprogrammi: file sorgente (.c) esempio: spazio2d.h spazio2d.c
34 utilizzo #include <stdio.h> #include spazio2d.h" #define N 1000! int main(int argc, char * argv[]) { punto_t v[n];! tipo definito in spazio2d.h... leggipunti(v, N);... specificare il percorso prototipo specificato in spazio2d.h codice sottoprogramma in spazio2d.c
35 spazio2d.h #include <stdio.h>! typedef struct _punto { float x, y; /* coordinate */ int val; /* valore */ } punto_t;! void leggipunti(punto_t[], int); float distanza(punto_t *, punto_t *);...
36 spazio2d.c #include "spazio2d.h" /** leggipunti: acquisisce n punti da stdin * e li memorizza in dati **/ void leggipunti(punto_t dati, int n) { } int i; for(i = 0; i < n; i++) scanf( %f%f%d, &dati->x, &dati->y, &dati->val); return;
37 compilazione file sorgente file oggetto file eseguibile nel caso di un unico file, si produce direttamente il file eseguibile gcc file_sorgente.c -o eseguibile con più file per ognuno si crea il file oggetto gcc -c file_sorgente.c -o file_oggetto.o facendo il link di tutti i file oggetto si crea il file eseguibile
38 compilazione sorgente codice oggetto gcc -Wall -c spazio2d.c -o spazio2d.o è necessario indicare il file.c che si vuole compilare e tutti i file header di interesse user@mac: gcc -Wall -c spazio2d.c -o spazio2d.o -I. cerca nella directory. i file header di interesse
39 compilazione sorgente codice oggetto gcc -Wall -c utilities.c -o utilities.o -I. ls spazio2d.c spazio2d.h spazio2d.o utilities.c utilities.h utilities.o main.c
40 compilazione sorgente codice oggetto gcc -Wall -c utilities.c -o utilities.o -I. gcc -Wall -c main.c -o main.o -I. ls spazio2d.c spazio2d.h spazio2d.o main.c main.o utilities.c utilities.h utilities.o
41 compilazione codici oggetto eseguibile gcc -o myprog spazio2d.o utilities.o main.o -I. -lm oppure: codici oggetto + main.c eseguibile user@mac: gcc -o myprogr main.c spazio2d.o utilities.o -I. -lm
42 make & Makefile modo semplice per organizzare la compilazione il comando di utilità make legge il file Makefile ed esegue le operazioni di compilazione specificate Makefile specifica quali file compilare, ordine, dipendenze ed opzioni
43 nome della regola Makefile - v1 myprog: main.c spazio2d.c utilities.c! TAB! gcc -Wall -o myprog main.c spazio2d.c utilities.c -I. -lm > make se non si specifica nulla, viene eseguita la prima regola del file nome_regola : file da cui dipende tutti i.c da compilare se cambia un file di quelli elencati, è necessario rieseguire la compilazione
44 Makefile - v2 CC = gcc CFLAGS = -I. -Wall LDFLAGS = -lm! myprog: spazio2d.o utilities.o main.o $(CC) -o myprog main.o spazio2d.o utilities.o $(LDFLAGS) clean: rm *.o myprog! ancora una unica regola per la compilazione regola per eliminare i file creati, eseguibile incluso
45 Makefile - v3 CC = gcc INCLUDE = -I. CXXFLAGS = -Wall LDFLAGS = -lm OBJS! all: myprog myprog: $(OBJS) = spazio2d.o utilities.o $(CC) $(CXXFLAGS) $(OBJS) -o myprog main.c $(INCLUDE) $(LDFLAGS) spazio2d.o : spazio2d.c $(CC) $(CXXFLAGS) -o spazio2d.o -c spazio2d.c $(INCLUDE) utilites.o : utilities.c $(CC) $(CXXFLAGS) -o utilities.o -c utilities.c $(INCLUDE)
46 Makefile - v4 CC = gcc INCLUDE = -I. CXXFLAGS = -Wall LDFLAGS = -lm OBJS = spazio2d.o utilities.o main.o! all: myprog $(OBJS)! %.o : %.c $(CC) $(CXXFLAGS) -c -o $@ $< $(INCLUDE)! myprog: $(OBJS) $(CC) $(CXXFLAGS) -o $@ $^ $(INCLUDE) $(LDFLAGS)!
argc, argv, getopt acquisizione e gestione di argomenti e opzioni da linea di comando
argc, argv, getopt acquisizione e gestione di argomenti e opzioni da linea di comando utilizzo >./calcola dati.txt risultati.txt Si esegue il programma calcola, passando come informazione il nomed di due
DettagliFondamenti di Informatica 2
Fondamenti di Informatica 2 della prova scritta del 28 Febbraio 2006 Esercizio 1 (4 punti) Date le seguenti variabili int A[] = 2,3,7,-2,5,8,-4; int N = 7; int min = 3; int i; Scrivere la porzione di codice
DettagliComplementi. - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system -
Complementi - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system - Università degli Studi di Brescia Prof. Massimiliano Giacomin
DettagliPrimo passo: il preprocessor. Il preprocessore. Esempi di direttive al preprocessore: #include. Esempi di direttive al preprocessore: #define
Primo passo: il preprocessor Source code Preprocessor Pre-processed source code Compiler Libraries Linker Executable code 1 Il preprocessore Il preprocessore compie delle manipolazioni sul codice del programma.
Dettaglifile fisico file logico
I files Un file è una struttura di dati residente su una memoria di massa (file fisico) Un programma vede un file come una sequenza di bytes (file logico) Generalizzando, un file può comprendere qualsiasi
DettagliPreprocessore, linker e libreria standard
Preprocessore, linker e libreria standard Università degli Studi di Brescia Prof. Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 IL PREPROCESSORE Programma sorgente
DettagliCompilazione e Makefile
Compilazione e Makefile Indice Il preprocessore Le istruzioni per il preprocessore Le MACRO L ambiente linux: alcuni comandi Editor ed il compilatore gcc I makefile Il comando make I flag Il preprocessore
DettagliSommario FONDAMENTI DI INFORMATICA 1. Il tipo FILE. Passaggio da standard I/O. LINGUAGGIO C Gestione dei file
Università degli Studi di Cagliari Corso di Laurea in Ingegneria Biomedica (Industriale), Chimica, Meccanica, Elettrica FONDAMENTI DI INFORMATICA 1 http://www.diee.unica.it/~marcialis/fi1 A.A. 2010/2011
DettagliCorso di Reti di Calcolatori L-A
Università degli Studi di Bologna Facoltà di Ingegneria Corso di Reti di Calcolatori L-A Esercitazione 9 (svolta) RPC: Inizializzazione Strutture Dati sul Server Luca Foschini Anno accademico 2010/2011
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
DettagliFondamenti di Informatica T-1, 2010/2011 Modulo 2. Prova d Esame 5A di Mercoledì 13 Luglio 2011 tempo a disposizione 2h
Prima di cominciare: si scarichi dal sito http://esamix.labx il file StartKit5A.zip contenente i file necessari (progetto Visual Studio ed eventuali altri file di esempio). Avvertenze per la consegna:
DettagliFondamenti di Informatica T-1, 2009/2010 Modulo 2 Prova d Esame 5 di Giovedì 15 Luglio 2010 tempo a disposizione 2h30'
Prima di cominciare: si scarichi dal sito http://esamix.labx il file StartKit5.zip contenente i file necessari (solution di VS2008 e progetto compresi). Avvertenze per la consegna: apporre all inizio di
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
DettagliSistemi Operativi. Esercitazione 2 Compilazione, Makefile e Processi
Sistemi Operativi Esercitazione 2 Compilazione, Makefile e Processi Percorso Compilazione programmi in c Makefiles Processi definizione gestione creazione Compilazione di programmi in C Compilazione e
DettagliAdvanced Linux Programming
Traduzione italiana di Advanced Linux Programming a cura di Simone Sollena Advanced Linux Programming Indice generale 1 Iniziare... 2 1.1 Editare con Emacs...2 1.1.1 Aprire un file sorgente C o C++...
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 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
DettagliCORSO DI SISTEMI OPERATIVI A - ESERCITAZIONE 2
UNIVERSITÀ DEGLI STUDI DI PARMA Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica a.a. 2005-2006 CORSO DI SISTEMI OPERATIVI A - ESERCITAZIONE 2 1 Editor di testi Sono disponibili numerosi
DettagliTUTORATO di LINGUAGGI I
TUTORATO di LINGUAGGI I Enrico Vianello TUTORATO di LINGUAGGI I contatti utili LE LEZIONI SI TERRANNO: VENERDI 12.30-14.30 PER INFORMAZIONI e DOMANDE: enrico.vianello@student.unife.it IL MATERIALE UTILIZZATO
DettagliPolitecnico di Milano - Dipartimento di Elettronica, informazione e Bioingegneria Prof. Mauro Negri
Politecnico di Milano - Dipartimento di Elettronica, informazione e Bioingegneria Prof. Mauro Negri Fondamenti di Informatica II appello 5 luglio 2014 Matricola Cognome Nome Istruzioni Durata prova: 2
DettagliPrecedenza e associatività. Complementi sul C - 2. Esempi. Esempi
Complementi sul C - 2 Ver. 2.4 2010 - Claudio Fornaro - Corso di programmazione in C Precedenza e associatività () [] ->. S D! ~ ++ + * & (cast ) sizeof S D * / % S D + - (somma e sottrazione) S D >
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
DettagliUnità Didattica 5 Linguaggio C. Stringhe. Accesso a file ASCII. Strutture.
Unità Didattica 5 Linguaggio C Stringhe. Accesso a file ASCII. Strutture. 1 Stringhe Una stringa è una sequenza di caratteri (es: ciao, sd!n29dnqa ); In C non esiste una variabile di tipo stringa; Una
DettagliIntroduzione al C. Unità 8 Stringhe
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Unità 8 Stringhe D. Bloisi, A. Pennisi, S. Peluso, S. Salza Sommario Unità 8 Array di
DettagliFondamenti di Informatica T-1, 2010/2011 Modulo 2. Prova d Esame 1A di Mercoledì 19 Gennaio 2011 tempo a disposizione 2h
Prima di cominciare: si scarichi dal sito http://esamix.labx il file StartKit1A.zip contenente i file necessari (progetto Visual Studio ed eventuali altri file di esempio). Avvertenze per la consegna:
DettagliDynamic Linking. Introduzione Creazione di una libreria dinamica Uso di una libreria dinamica
Dynamic Linking Introduzione Creazione di una libreria dinamica Uso di una libreria dinamica Dynamic Linking Il linking tra i moduli di un programma e le librerie da esso utilizzate può essere Statico
DettagliEsercitazione. Uso di funzioni e librerie di funzioni
Esercitazione Uso di funzioni e librerie di funzioni Prof. Paolo Mancarella Informatica I Corso di Laurea in Fisica A.A. 2007/2008 1 Uso di funzioni e librerie di funzioni Funzioni 1.1 Funzioni Il meccanismo
DettagliFondamenti di Informatica T-1, 2014/2015 Modulo 2. Prova d Esame 2A di Martedì 29 Gennaio 2015 tempo a disposizione 2h
Avvertenze per la consegna: apporre all inizio di ogni file sorgente un commento contenente i propri dati (cognome, nome, numero di matricola) e il numero della prova d esame. Al termine, consegnare tutti
DettagliAdvanced Linux Programming
Traduzione italiana di Advanced Linux Programming a cura di Simone Sollena Advanced Linux Programming Indice generale 1 Iniziare... 3 1.1 Editare con Emacs... 3 1.1.1 Aprire un file sorgente C o C++...
DettagliFunzioni. Il modello console. Interfaccia in modalità console
Funzioni Interfaccia con il sistema operativo Argomenti sulla linea di comando Parametri argc e argv Valore di ritorno del programma La funzione exit Esercizio Calcolatrice 2, presente in tutti i programmi
DettagliRelativamente agli esempi sopra riportati, al termine dell esecuzione della funzione il file di uscita dovrà contenere quanto riportato a lato.
Corsi di laurea in Ingegnera Elettronica e Ingegneria Gestionale Fondamenti di Programmazione / Fondamenti di Informatica I Prova scritta del 2 febbraio 2016 Esercizio 1 (16 punti) Un file di testo contiene
DettagliProgrammazione C Massimo Callisto De Donato
Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE
DettagliFondamenti di Informatica T-1, 2011/2012 Modulo 2. Prova d Esame 2A di Giovedì 12 Gennaio 2012 tempo a disposizione 2h
Prima di cominciare: si scarichi dal sito http://esamix.labx il file StartKit2A.zip contenente i file necessari (progetto Visual Studio ed eventuali altri file di esempio). Avvertenze per la consegna:
DettagliLaboratorio di Elementi di Architetture e Sistemi Operativi Esercizi del 18 Aprile 2012
Laboratorio di Elementi di Architetture e Sistemi Operativi Esercizi del 18 Aprile 2012 Esercizio 1. Modificare l Esercizio 3 della lezione scorsa (occorrenze di ogni lettera dell alfabeto) in modo che
Dettagliprova.c #include <stdio.h> char funzione(char); codice oggetto del main()
prova.c #include char funzione(char); {char c= a ; printf( Ecco il carattere: %c\n,c); c=funzione(c); printf( Ecco il carattere modificato: %c\n,c); char funzione(char tmp) {if(tmp
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,
DettagliScope (visibilità) Scope di un identificatore
Scope (visibilità) Scope di un identificatore Lo scope (visibilità) di un identificatore è la porzione di codice in cui quell identificatore è definito e ha senso Se l identificatore si riferisce a una
DettagliMATRICOLA S B/1 BIN: MS: CA2: BIN: = 1x x x x x x x x2 0 = 182
NOME COGNOME MATRICOLA S B/1 AAA-BARC BARD-BOUH BOUI-CART CARU-CONS CARU-CONS CONT-DEMAR DEMAS-FERRD FERRE-GIAQ GIAR-LAEZ LAFA-MANC MAND-MIQZ MIRA-PAHZ PAIA-PODD PODE-ROSSE ROSSF-SIQZ SIRA-TUCB TUCC-ZZZ
DettagliEsercizio 1 (15 punti)
Esercizio 1 (15 punti) Corsi di laurea in Ingegnera Elettronica e Ingegneria Gestionale Fondamenti di Programmazione / Fondamenti di Informatica I Prova scritta del 30 giugno 2017 In un lontano paese da
DettagliFondamenti di Informatica T-1, 2010/2011 Modulo 2. Prova d Esame 4A di Martedì 21 Giugno 2011 tempo a disposizione 2h
Prima di cominciare: si scarichi dal sito http://esamix.labx il file StartKit4A.zip contenente i file necessari (progetto Visual Studio ed eventuali altri file di esempio). Avvertenze per la consegna:
DettagliI file possono essere manipolati (aperti, letti, scritti ) all interno di programmi C. dischi nastri cd
Per poter mantenere disponibili i dati tra le diverse esecuzioni di un programma (persistenza dei dati) è necessario poterli archiviare su memoria di massa. dischi nastri cd GESTIONE DEI FILE I file possono
DettagliFondamenti di Informatica e Laboratorio T-AB Prova Pratica - 11 Febbraio 2009 Compito A
Prima di cominciare: si scarichi il file StartKit3A.zip contenente i file di esempio. Avvertenze per la consegna: nominare i file sorgenti come richiesto nel testo del compito, apporre all inizio di ogni
DettagliFondamenti di Informatica T-1, 2013/2014 Modulo 2. Prova d Esame 6A di Giovedì 11 Settembre 2014 tempo a disposizione 2h
Avvertenze per la consegna: apporre all inizio di ogni file sorgente un commento contenente i propri dati (cognome, nome, numero di matricola) e il numero della prova d esame. Al termine, consegnare tutti
DettagliCompilazione separata. Come realizzare correttamente un piccolo progetto su piu' file
Compilazione separata Come realizzare correttamente un piccolo progetto su piu' file 1 Programmi C su più file Tutti i programmi che abbiamo visto finora erano composti da un unico file.c Nel caso di programmi
DettagliFile e puntatori a file
File e puntatori a file Vitoantonio Bevilacqua vitoantonio.bevilacqua@poliba.it La libreria stdio.h mette a disposizione delle funzioni che hanno la peculiarità di trattare con questa nuova tipologia di
DettagliCorso di Programmazione Concorrente Processi. Valter Crescenzi
Corso di Programmazione Concorrente Processi Valter Crescenzi http://crescenzi.inf.uniroma3.it Sommario Processi vs Thread Creazione e terminazione di processi chiamata di sistema fork() chiamata di sistema
DettagliPuntatori. Un puntatore contiene un numero che indica la locazione di memoria dove è presente la variabile puntata
Puntatori int i = 10; int * pi = &i; pi i = 10 116 int * pi = pi contiene un informazione che mi permette di accedere ( puntare ) ad una variabile intera Un puntatore contiene un numero che indica la locazione
DettagliAppunti del corso di Informatica 1. 6 Introduzione al linguaggio C
Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)
DettagliScrittura formattata - printf
Esercizi su Input/Output con formato FormattedIO 1 Scrittura formattata - printf Funzione printf int printf ( , ) La funzione restituisce un valore intero uguale ai caratteri
DettagliFunzioni e. Alessandra Giordani Mercoledì 16 maggio 2012
Funzioni e passaggio parametri Alessandra Giordani agiordani@disi.unitn.it Mercoledì 16 maggio 2012 http://disi.unitn.it/~agiordani/ Cosa vedremo oggi Le funzioni Il passaggio dei parametri Le dichiarazioni
DettagliOperazioni sulle stringhe Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm
DettagliAppunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C
Università di Roma Tre Facoltà di Scienze M.F.N. Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)
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
DettagliBreve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN
Breve Manuale di Riferimento sulla Sintassi Linguaggi e versione aggiornata al 05/02/2004 Sommario Elementi di Base... 2 Dati, Tipi e Dichiarazioni... 2 Tipi di Dato di Base... 2 Tipi di Dato Strutturati...
DettagliIntroduzione a GCC: GNU Compiler Collection
Introduzione a GCC: GNU Compiler Collection Caratteristiche di GCC Compilatore multipiattaforma modulare Disponibile per tutti i principali sistemi operativi Può produrre programmi per la maggior parte
DettagliGestione dei File. dischi nastri cd
Gestione dei File Per mantenere disponibili i dati tra le diverse esecuzioni di un programma, questi si devono archiviare in file su memoria di massa (dati persistenti): dischi nastri cd Un file è un astrazione
DettagliFILE: tipo operazione Istruì. prototipo esempi lettura di un carattere fgetc Int fgetc(file *flusso) Vedi sotto
FILE: tipo operazione Istruì. prototipo esempi lettura di un carattere fgetc Int fgetc(file *flusso) Vedi sotto alla volta Scrittura di un fputc Int fputc(int ch, FILE *flusso); carattere alla volta Lettura
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
DettagliÈ dato un file di testo PEOPLE.TXT che più di 20), una persona per riga
Esercizio i 1: Strutture tt e file Esercizio - lettura/filtro/scrittura È dato un file di testo PEOPLE.TXT che contiene i dati di una serie di persone (non più di 20), una persona per riga Si vuole realizzare
DettagliUn esecutore di un linguaggio simbolico e costituito dalla coppia Compilatore, processore (o Interprete, processore)
Un esecutore di un linguaggio simbolico e costituito dalla coppia Compilatore, processore (o Interprete, processore) Macchina astratta: un linguaggio di programmazione trasforma un calcolatore in una macchina
DettagliIl comando Make: : uno strumento per la compilazione ed esecuzione di software applicativo. A. Murli - Cacolo Scientifico a.a.
Il comando Make: : uno strumento per la compilazione ed esecuzione di software applicativo a.a.2007/2008 1 Un software si compone di diversi moduli, generalmente memorizzati in file diversi. Il programma
DettagliIl comando make. Per produrre un eseguibile da un programma C sono necessari tre passi compiuti dai seguenti moduli:
Il comando make Sviluppando programmi complessi, si è spesso portati a suddividere il codice sorgente in diversi file. La fase di compilazione quindi richiede maggior tempo, anche se le modifiche apportate
DettagliSmallShell Piccolo processore comandi
SmallShell Piccolo processore comandi /* file smallsh.h */ #include #include #define EOL 1 #define ARG 2 #define AMPERSAND 3 #define SEMICOLON 4 #define RIDIRIN 5 #define RIDIROUT 6
DettagliAdvanced Linux Programming
Advanced Linux Programming Indice generale 1 Iniziare... 2 1.1 Editare con Emacs... 2 1.1.1 Aprire un file sorgente C o C++... 3 1.1.2 Formattazione automatica...3 1.1.3 Evidenziatura della sintassi...4
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
DettagliCapitolo 11 Elaborazione di file
1 Capitolo 11 Elaborazione di file 11.1 Introduzione 2 I file Possono essere creati, modificati, ed elaborati da programmi scritti in C Sono utilizzati per la memorizzazione permanente dei dati La memorizzazione
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
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
DettagliPolitecnico di Torino
Politecnico di Torino INFORMATICA II Esame del 19 Luglio 2008 1. Realizzare un programma in linguaggio C per evidenziare le variazioni percentuali di un insieme di azioni quotate in borsa. In un file di
DettagliChiamate di sistema. Pipe Flussi di I/O
Chiamate di sistema Pipe Flussi di I/O Esempio di chiamata di sistema #include int main(int argc, char ** argv) FILE * f; f = fopen("nuovo-file", "w"); fprintf(f, "Hello World!\n"); fclose(f);
DettagliBREVISSIMA GUIDA AL SISTEMA UNIX / LINUX
BREVISSIMA GUIDA AL SISTEMA UNIX / LINUX 1. DEFINIZIONI sistema operativo (SO): Software che gestisce le risorse del computer (filesystem e periferiche) filesystem: Insieme dei supporti di memorizzazione.
DettagliStringhe. Concetti chiave
Concetti chiave Stringhe Variabili strutturate: array di caratteri Carattere di fine stringa Copiare, concatenare, confrontare e convertire stringhe Funzioni standard strcpy, strcat, strcat, strcmp, atoi,
DettagliPrimi passi col linguaggio C
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Come introdurre un linguaggio di programmazione? Obiettivi: Introduciamo una macchina astratta
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
DettagliLinguaggio C La libreria standard
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C La libreria standard 2001 Pier Luca Montessoro - Davide Pierattoni
DettagliIl sistema C è formato dal linguaggio C, dal preprocessore, dal compilatore, dalle librerie e da altri strumenti di supporto.
Sistema C e organizzazione del codice Il sistema C è formato dal linguaggio C, dal preprocessore, dal compilatore, dalle librerie e da altri strumenti di supporto. Un programma C è costituito da un insieme
DettagliIDE DevC
IDE DevC++ 4.9.8.1.0 Manuale utente Data ultima revisione: 22/01/2005 Fondamenti di informatica Università Facoltà Corso di laurea Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria
DettagliLinguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.
Linguaggio C Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore. 1 Funzioni Generalizzazione del concetto di funzione algebrica: legge che associa a valori delle variabili
DettagliEsercizi File Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Si ringrazia Raffaele Nicolussi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it
Dettagligiapresente( ) leggi( ) char * strstr(char * cs, char * ct) NULL
Materiale di ausilio utilizzabile durante l appello: tutto il materiale è a disposizione, inclusi libri, lucidi, appunti, esercizi svolti e siti Web ad accesso consentito in Lab06. L utilizzo di meorie
DettagliSTRUTTURA DI UN PROGRAMMA
STRUTTURA DI UN PROGRAMMA File prova1.c #include ... int m; int f(int); int g(int x){ Area globale Direttive Dichiarazioni globali e prototipi di funzioni Definizioni di funzioni.../*ambiente
DettagliShell BASH. Variabili Redirezione
Shell BASH Variabili Redirezione Variabili Scrittura/definizione: a=3 (senza spazi) Lettura: ${a} o semplicemente $a Esempi: > a=3 > echo $a 3 > echo $aa > echo ${a}a 3a > a=ciao pippo bash: pippo: command
DettagliProblem solving avanzato
Problem solving avanzato Formulazione del problema Struttura dati e algoritmo Il programma 2 26 Politecnico di Torino 1 Dati in input (1/4) Sono dati due file di testo, contenenti le informazioni sulle
DettagliAppunti tratti dal videocorso on-line di Algoritmi e Programmazione Avanzata By ALeXio
Appunti tratti dal videocorso on-line di Algoritmi e Programmazione Avanzata By ALeXio 2-Programmazione modulare nel linguaggio C Non è possibile creare programmi di elevata complessità lavorando con un
DettagliImpianti di Elaborazione (allievi Gestionali)
Impianti di Elaborazione (allievi Gestionali) Giuseppe Pozzi Impianti di Elaborazione per Allievi Gestionali - Como Facoltà di Ingegneria dell Informazione Politecnico di Milano giuseppe.pozzi@polimi.it
DettagliEsercizio 1: funzione con valore di ritorno di tipo puntatore
Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 7 Esercitazione: 14 dicembre 2005 Esercizi su ricorsione, manipolazione stringhe, strutture dinamiche Problema: Esercizio
DettagliEsercitazione 11. Liste semplici
Esercitazione 11 Liste semplici Liste semplici (o lineari) Una lista semplice (o lineare) è una successione di elementi omogenei che occupano in memoria una posizione qualsiasi. Ciascun elemento contiene
DettagliLinguaggio C. Esercizio 1
Linguaggio C Esercizi su puntatori e liste Walter Didimo (e-mail:didimo@dia.uniroma3.it) supplemento al Corso di Calcolatori Elettronici (Riccardo Torlone) 1 Esercizio 1 Siano p e q due puntatori a variabili
DettagliEsercizi. I File ed il C
Politecnico di Milano Esercizi File di testo,, file binari I File ed il C Insieme omogeneo di dati, memorizzato su disco e caratterizzato da un nome La lunghezza di un file non è fissata a priori Astrazione
DettagliInformatica 1. Prova di recupero 21 Settembre 2001
Informatica 1 Prova di recupero 21 Settembre 2001 Si risolvano i seguenti esercizi. Ai fini della determinazione del voto finale il loro punteggio andrà sommato al punteggio del laboratorio. Il tempo complessivo
DettagliFondamenti di Informatica T. Linguaggio C: File
Linguaggio C: File I File Il file e` l'unita` logica di memorizzazione dei dati su memoria di massa, che consente una memorizzazione persistente dei dati, non limitata dalle dimensioni della memoria centrale.
DettagliI puntatori e l allocazione dinamica di memoria
I puntatori e l allocazione dinamica di memoria Allocazione dinamica di memoria L allocazione delle variabili Allocazione e rilascio espliciti di memoria Le funzioni malloc e free 2 Allocazione dinamica
DettagliFondamenti di Informatica T-1, 2011/2012 Modulo 2. Prova d Esame 1A di Giovedì 22 Dicembre 2011 tempo a disposizione 2h
Prima di cominciare: si scarichi dal sito http://esamix.labx il file StartKit1A.zip contenente i file necessari (progetto Visual Studio ed eventuali altri file di esempio). Avvertenze per la consegna:
DettagliÈ possibile definire vettori di qualunque tipo Possiamo, quindi, anche avere vettori di stringhe Ad esempio:
È possibile definire vettori di qualunque tipo Possiamo, quindi, anche avere vettori di stringhe Ad esempio: char * stringhe[4]; Se volessimo passare un array di stringhe ad un funzione/procedura dobbiamo
DettagliMakefile. Il file dependency system di Unix (serve ad automatizzare il corretto aggiornamento di più file che hanno delle dipendenze)
Makefile Il file dependency system di Unix (serve ad automatizzare il corretto aggiornamento di più file che hanno delle dipendenze) 1 makefile: idea di fondo (1) Permette di esprimere dipendenze fra file
DettagliUniversità degli Studi di Cassino Corso di Fondamenti di Informatica Tipi strutturati: Stringhe. Anno Accademico 2010/2011 Francesco Tortorella
Corso di Informatica Tipi strutturati: Stringhe Anno Accademico 2010/2011 Francesco Tortorella Stringhe di caratteri La stringa è il tipo strutturato con cui vengono rappresentati gruppi di caratteri quali
DettagliLezione 8 Struct e qsort
Lezione 8 Struct e qsort Rossano Venturini rossano@di.unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Esercizio 3 QuickSort strambo Modificare il Quicksort
DettagliCompilazione separata
Compilazione separata 1 Compilazione separata Finora abbiamo trattato solo programmi C contenuti in un unico file define/include typedef variabili globali prototipi F1..FN main def F1 def FN Struttura
DettagliPerché il linguaggio C?
Il linguaggio C 7 Perché il linguaggio C? Larga diffusione nel software applicativo Standard di fatto per lo sviluppo di software di sistema Visione a basso livello della memoria Capacità di manipolare
DettagliPROVA SCRITTA DEL CORSO DI CORSO DI LAUREA IN INGEGNERIA BIOMEDICA ED ELETTRICA 9/6/2008
PROVA SCRITTA DEL CORSO DI CORSO DI LAUREA IN INGEGNERIA BIOMEDICA ED ELETTRICA 9/6/2008 MOTIVARE IN MANIERA CHIARA LE SOLUZIONI PROPOSTE A CIASCUNO DEGLI ESERCIZI SVOLTI ESERCIZIO 1 (5 punti) Descrivere
Dettagli