Ciao e bentornato.
In questa conferenza, voglio parlare alcune delle funzioni di utilità
fornite dalla libreria standard c.
E questi fanno esattamente quello che fai tu penserebbero solo
alcune utilità, alcune funzioni generali generiche per fare varie cose diverse.
Per utilizzare le funzioni di utilità, di solito sono nella libreria standard. h.
Quindi includi quel file di intestazione.
Alcune delle funzioni che sto andando per descrivere solo funzioni utili.
Uno è il valore assoluto abs.
Restituisce l'assoluto valore di un argomento.
Il valore assoluto è convertendolo in positivo.
Quindi se passi in negativo o così via, ti restituirà
il valore positivo.
C'è una funzione chiamata exit.
L'ho usato un po ' nella nostra funzione principale.
Ci vorrà un numero intero, di solito un file valore di ritorno e
di solito un numero negativo significa che c'è un errore un numero positivo o zero significa nessun
errore o uno significa nessun errore.
Questo terminerà il programma però.
Salterà fuori.
Se sei in una funzione principale, fai un ritorno, puoi
tornare dalla funzione principale.
Ma l'uscita è di solito per chiudere il programma.
Ci sono anche alcune costanti definito come esito positivo ed
esito negativo che è possibile utilizzare se non vuoi usare i numeri.
Altre routine correlate in libreria a cui potresti
voler fare riferimento sono importanti all'uscita.
E lo vedrai in un bel po ' programma bit c, soprattutto abort.
L'aborto è quando ce ne sono alcuni tipo di errore come se non
puoi malloc, puoi chiamare abort, e puoi impostarlo per segnalare.
La cosa buona con l'aborto è che genererà un
file core a seconda del segnale.
Il file core può essere aiutato eseguire il debug per ulteriori informazioni.
Ma esci interrompi e esci molto funzioni utili, solitamente invocate quando si verifica
un errore fatale.
C'è un ambiente get funzione che ti permetterà di leggere
le variabili d'ambiente.
Le variabili d'ambiente sono solitamente associato al tuo ambiente.
Sono una variabile che tu
può usarlo come una variabile globale che puoi usare ovunque nel sistema operativo.
Quindi, se è Linux, hai un file variabile d'ambiente per il tuo percorso.
Ci sono variabili d'ambiente in finestre per specificare i percorsi o dove si
trovano i diversi programmi o solo variabili globali generiche.
Puoi impostare una variabile d'ambiente e poi puoi leggerlo usando
questa funzione get environment.
E leggerà in quello variabile d'ambiente e puoi usarla nel
tuo programma.
Quindi, di nuovo, cose come path anythings che sono correlati alla tua
shell o al tuo ambiente.
Ottieni ambiente è molto utile.
C'è una funzione qsort.
Questo ordinerà l'array di dati puntato dall'array di puntatori void.
Quindi c'è un array che è preso come primo parametro
e lo ordinerà.
Ci saranno n elementi nel file array, ogni dimensione morde la lunghezza.
E la n e la dimensione sono di tipo taglia t.
Quindi ci sono quattro variabili che vanno a questa funzione.
Ma il qsort è carino perché puoi ordinare un array.
Il quarto argomento è a puntatore alla funzione che si
desidera utilizzare per l'ordinamento.
Quindi può diventare più complicato.
Ma questa funzione è molto utile quando è necessario confrontare due
elementi in un array.
Puoi passare i puntatori agli elementi con
cui vuoi confrontare.
Abbiamo una funzione casuale.
Lo usiamo in uno dei file le nostre sfide rand.
Questo genererà un numero casuale.
Puoi specificare un seme se lo desideri in un'altra funzione
o genererà semplicemente un numero casuale compreso tra a valore minimo di 3276 e valore
minimo zero casuale, valore massimo 3276.
Quindi, rand max è definito nella libreria standard. h.
Lo userai spesso con sran funzione, che fornisce un seme.
Un seme può fornire una certa gamma.
Farà i numeri forse anche più casuale.
Quindi semina il numero casuale generatore a un int non firmato.
Il sistema è una funzione che puoi invocare per eseguire chiamate di sistema.
L'ho usato in classe per fare una pausa.
Ma tutto ciò che puoi eseguire dal file console, come cambiare
directory, modificare i permessi se sei attivo Linux, eseguendo altri programmi, puoi fare tutto
questo attraverso il sistema.
E così sarà effettivamente esegui un comando nella tua shell, che sia
il prompt dos o stai usando una shell su Linux.
Eseguirà quel comando.
Quindi per esempio potresti, diciamo system make dir e creerà una directory di
qualunque cosa tu abbia specificato nell'argomento per rendere dir.
È tutto doppio all'interno virgolette, quindi ci vuole una stringa.
Il sistema è anche molto, molto utile.
La libreria assert è utile per il debug.
Non abbiamo avuto la possibilità di parlare molto sull'affermazione,
ma volevo menzionarlo brevemente.
È una libreria che è affermata. h ed è uno per aiutare con il debug.
Quindi affermare è dire che qualcosa è vero.
Quindi puoi mettere asserzione dentro il tuo codice per assicurarti che qualcosa sia vero
prima di te passare alla riga di codice successiva.
C'è una macro di affermazione che che utilizzerai e richiede un
argomento come un'espressione interna.
Se l'espressione restituisce false, la macro assert scrive un messaggio di
errore nell'errore standard stream e chiama la funzione abort.
Quindi il tuo programmatore termina.
Quindi puoi mettere qualcosa nel codice che fondamentalmente dice
qualcosa del genere.
Puoi dire che z è uguale a x volte x meno x volte y.
E poi puoi affermare che z è maggiore o uguale a zero.
Se restituisce falso, il tuo il programma sta per uscire.
Altrimenti, verrà eseguito la riga di codice successiva.
Quindi è come realizzare la verità presupposti in tutto il codice.
Vuoi assicurarti che certi valori sono quello che sono prima di
passare a quello successivo.
Questo essenzialmente è assicurarselo non sei come dividere per zero lì non
avevi un valore zero quando hai fatto questa moltiplicazione.
Vedrai spesso affermare dentro di programmi in c per il debug.
Altri utili file di intestazione that potresti voler esaminare: tempo. h.
Tempo. h ha tutti i tipi di diversi funzioni e macro per
supportare date e orari differenti.
Di solito, restituendo una struttura time t.
Ma puoi avere la data.
Puoi avere il tempo.
Errno. ho numero di errore. h.
Questo definisce le macro per segnalazione di errori.
Spesso usato, di nuovo, per migliore debugging e segnalazione
di errori specifici.
Quindi molte funzioni tu utilizzare nelle librerie standard.
Se falliscono, possono restituire un numero per un errore specifico, ed è più importante quando usi
un socket funzioni altre cose perché potrebbero esserci
molti errori diversi.
A volte è utile sapere cosa sta
succedendo invece di dire semplicemente che c'è un errore non lo è molto utile dire che
un tipo specifico di errore è molto utile.
Quindi puoi ottenere i numeri di errore usando questo con per aiutare
con ulteriori debug.
Locale. h.
Ci sono un sacco di funzioni e le
macro in questa intestazione per una formattazione diversa valute e unità monetarie.
Segnale. h.
Questo è utile di solito per terminare il programma che genera
segnali diversi.
I segnali non sono un argomento che trattiamo in molti dettagli
ma questo potrebbe essere utile quando si chiama abort specificando segnali specifici mentre il programma si bloccava
o il programma è terminato.
E puoi usarli se tu capire i segnali che puoi usarli anche
nel tuo file core.
Stdarg. h.
Questo definisce diverse strutture che abilita il passaggio di un numero
variabile di argomenti a una funzione, varargs.
Usiamo varg e printf, ma non l'abbiamo fatto creare le nostre funzioni di arg.
È un argomento più avanzato.
Ma questi sono file di intestazione di base che potresti trovare utile per ottenere orari,
numeri di errore e così via.
Queste sono buone funzioni di utilità.
Quindi spero che questo sia stato utile.
Grazie.