Estratto del documento

Informatica

Albero del file system

Organizzazione gerarchica delle directory.

Case-sensitivity

Vi è differenza tra lettere maiuscole e minuscole.

Comandi

  • CAT: C, stampa contenuto di un file o più.
  • CD: C, cambio directory, specificando la directory di destinazione.
  • CP: C, crea un 2o file che contiene le stesse info di quello copiato, scegliendo il suo nome. Posso copiare anche una directory. CP NOME_FILE_INIZIALE NOME_FILE_FINALE. cp -r copia directory col suo contenuto.
  • Directory: strutture in cui stanno i file, organizzate in modo gerarchico, e che costituiscono il file system.
  • Directory ".": presente in ogni directory, indica la directory corrente.
  • Directory "..": presente in ogni directory, indica la directory genitore di quella corrente.
  • Directory corrente: directory in cui sto, in questo momento, lavorando.
  • Directory di sistema: directory che contiene tutti i file dei comandi nel disco.
  • ECHO: C, stampa a video ciò che scrivo su lista di comando, è utile negli script. Se scrivo "echo FRASE > NOME_FILE" la mia frase viene reindirizzata nel mio NOME_FILE, sovrascrivendolo. Se NOME_FILE non è presente nella directory viene creato. Se metto >> non sovrascrivo ma appendo stringa in fondo al file.
  • Esecuzione di un comando: viene dato l'input dall'utente alla shell, la quale fa eseguire il file che corrisponde al comando.
  • File: contiene dati o istruzioni.
  • File system: struttura interna all'elaboratore che serve per organizzare i dati e istruzioni in file.
  • Home directory: directory in cui si trova l'utente dopo il login, ogni utente ne possiede una. Esse sono organizzate in una directory genitore "home". Con "~" indico la home directory dell'utente corrente.
  • LS: C, mostra contenuto della directory corrente. Posso specificare anche quale directory voglio vedere e il modo in cui le voglio vedere. Di solito mostra solo directory all'interno della directory che voglio vedere.
  • MAN: C, visualizza la guida di un comando.
  • MKDIR: C, crea directory, o in dir. corrente o in un percorso. Con "-r" creo tutte le cartelle che indico nel percorso.
  • MV: C, sposta uno o più file o una directory in una directory. Posso anche rinominare con mv "nome corrente" "nome nuovo".

Percorso

Sequenza di directory da percorrere per arrivare a un file/directory. Assoluto: localizza oggetto scrivendo sequenza di directory partendo dal root. Relativo: localizza oggetto scrivendo sequenza di directory partendo da directory corrente.

Programma

File con istruzioni, scritte in linguaggio macchina.

Prompt

Porzione di testo con al quale la shell ci dice che è pronta a ricevere comandi.

Comandi aggiuntivi

  • PWD: C, stampa il percorso assoluto della directory corrente. Processo interno alla shell.
  • RM: C, cancella file, anche più di uno. Con rm -r cancello directory con tutto ciò che c'è dentro.
  • RMDIR: C, rimuove directory vuote.
  • Root: (1) directory principale (/), da cui parte l'albero. (2) Username dell'amministratore di sistema nei sistemi Unix.
  • Shell: programma interprete che riceve i comandi e ne esegue le operazioni. Strato più esterno del sistema operativo.
  • Touch: C, permette di creare un file nella directory corrente.
  • Tree: C, visualizza albero directory dalla directory corrente.
  • Quit: C, serve per tornare al prompt.
  • Which: C, dice il nome del file che viene eseguito per eseguire il comando da me impartito. In soldoni stampa il percorso assoluto del file stesso.
  • Wildcard: "*" = nessuno o più caratteri, "?" = uno e un solo carattere. Sono operatori della shell, utile, con ls, per individuare nomi di file con determinate caratteristiche.
  • Operatore di redirezione: >

Costrutti di controllo

  • Istruzioni composte: le pongo tra parentesi graffe {istr1 istr2}, ogni istr avrà il proprio punto e virgola.
  • Costrutto if: if (espr) / {1 o più istruzioni}
  • Costrutto if-else: if (espr) / {1 o più istruzioni} / else {1 o più istruzioni}
  • Condizioni complesse con operatori logici: if ((a%2=0) && (a/2=0) || !(a%2=1))
  • Costrutto for: for (espr1 (inizializzazione, si ripete solo all’inizio del ciclo); espr2 (condizione); espr3 (incremento/decremento contatore)) istr (eseguita se condizione è positiva)
  • Costrutto while: while (espr (condizione)) istr , se la condizione è vera esegue l’istruzione.
  • Costrutto do-while: do istr while (espr), viene eseguita un’istruzione, ed in base alla condizione si decide se continuare o no ad eseguirla.
  • Costrutto switch: switch (sel), parentesi graffe obbligatorie, case 1, case 2 … case n. Ogni case termina con un break. Ogni case ha istruzioni. Se non viene selezionato nessun caso si va al default.
  • Controllo del flusso di esecuzione: fattibile grazie a break (termina il ciclo più interno) e continue (passa immediatamente all’iterazione successiva; in for viene fatto l’incremento e poi valutata la condizione).
  • Salto incondizionato: fattibile grazie a "goto etichetta", e reindirizza ad etichetta. Non posso saltare tra funzioni diverse ed è utile per non dover usare n break in una funzione con diversi cicli nidificati. Etichetta: printf.

Identificatori e tipi di dati

  • %0nx: numero esadecimale con almeno n cifre, e sostituisce, eventualmente, con 0.
  • %ni: intero con almeno n cifre, sostituirebbe spazio.
  • %c: stampa il carattere ASCII corrispondente al numero.
  • %s: stampa stringa.
  • %lf: double.

Differenza tra singoli e doppi apici

Singoli: costante di tipo char.

Doppi: stringa, con relativo terminatore.

Tipi di dati

  • Il C è un linguaggio tipizzato, ovvero ad ogni variabile deve essere assegnato un tipo, in modo da verificare che l'assegnamento avvenga correttamente (se mi aspetto un numero intero non accetterà un testo) e riserva una parte di memoria (fissa, per ogni tipo) per la variabile. Calcolatore deve conoscere indirizzo, dimensione e tipo di dato (per capire come tradurre il binario).
  • Tipi interi: la dimensione di ognuno di essi dipende dal processore e dal compilatore (char, short, int, long, long long). Esistono i signed e gli unsigned (con 8 bit, Sign -128 +127, UnS 0 +255). Costanti intere, abbiamo la possibilità di rappresentarle in base 10, 8 e 16 (aggiungendo uno 0 [8], 0x [16]). Col tipo char posso rappresentare tra singoli apici il numero del carattere ASCII corrispondente.
  • Tipi a virgola mobile: rappresentati secondo lo standard IEEE, come (-1) M 2. Includendo math.h posso fare calcoli matematici basati sul double, compilandolo inserendo -lm. Bisogna utilizzare angoli in radianti (π = m_pi). Costanti in float, double se non specifico. Posso dotare il numero di esponente (e/E).
  • Puntatori: sono variabili che rappresentano un indirizzo di memoria. Serve il tipo a cui si punta, asterisco e il nome. È int il valore puntato da p. È una variabile contenente un indirizzo, nel quale sono presenti dei bit da interpretare come un numero di tipo intero. Ogni puntatore, sulla stessa macchina, ha la stessa dimensione. Tramite l’operatore & posso ottenere l’indirizzo di una variabile, ed assegnarlo poi, eventualmente, al mio puntatore. Tramite l’operatore * posso accedere al valore contenuto in un determinato indirizzo di memoria. "*p=3" significa quindi: assegna il valore 3 alla cella corrispondente all’indirizzo situato in p. Accedendo ad un’area di memoria in questo modo tramite un puntatore, si definisce Deferenziare un puntatore. Esiste il puntatore nullo, p=0, e 0 è un indirizzo di memoria non accessibile.
  • Array: aree contigue di memoria in cui sono memorizzati elementi di tipo omogeneo. In base alla loro dimensione prendono nomi diversi. Vettori: sintassi, int vett[n° elem] (N.B. vett = nome vettore). Ogni elemento del vettore è esprimibile come vett[0]… vett [N-1], dati N elementi. I dati sono memorizzati in indirizzi di memoria contigui, in questo modo posso sempre trovare l’indirizzo dell’i-esimo elemento con: base + i * dim (base = indirizzo 1° elemento, dimensione del tipo di dato). Il vettore può essere visto come un puntatore costante, che punta al primo elemento del vettore (vett fornisce indirizzo del primo elemento del vettore), quindi scrivere vet[0] o *vet è la stessa cosa (*(vet+1) = vet[1]).
Anteprima
Vedrai una selezione di 3 pagine su 10
Riassunto Programmazione Linguaggio C Pag. 1 Riassunto Programmazione Linguaggio C Pag. 2
Anteprima di 3 pagg. su 10.
Scarica il documento per vederlo tutto.
Riassunto Programmazione Linguaggio C Pag. 6
1 su 10
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher giuseppe.para81 di informazioni apprese con la frequenza delle lezioni di Fondamenti di informatica 1 e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Pavia o del prof Facchinetti Tullio.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community