Aller au contenu

Formulaire

LINFO1252Formulaire
Fenêtre de terminal
$0 # nom/chemin du script
$1 $2 # arguments
$# # nombre d'arguments
$? # code retour dernière commande
0 = STDIN
1 = STDOUT
2 = STDERR
Fenêtre de terminal
cmd > f # écrase
cmd >> f # ajoute
cmd 2>&1 # STDERR -> STDOUT
cmd1 | cmd2 # pipe
Fenêtre de terminal
VAR="valeur"
"$VAR"
${VAR} # variable
$(commande) # sortie d'une commande
Fenêtre de terminal
[ $# -ne 2 ] # nombre d'arguments différent de 2
[ -d "$x" ] # répertoire
[ -f "$x" ] # fichier
[ -s "$x" ] # fichier non vide
Fenêtre de terminal
for x in liste; do
...
done
find "$DOSSIER" -type d
tar -czf archive.tar.gz dossier
sort -n -r fichier
commande | awk '{print $1, $2}'

Dans awk, $1, $2 désignent les champs de la ligne courante.

Fenêtre de terminal
/dev/null # jeter une sortie
/dev/stderr # sortie d'erreur
1 chiffre hex = 4 bits
unsigned n bits : 0 ... 2ⁿ - 1
signed n bits : -2ⁿ⁻¹ ... 2ⁿ⁻¹ - 1

Complément à 2 pour obtenir -x : inverser les bits puis ajouter 1.

Sur n bits, le bit de poids fort a le poids -2ⁿ⁻¹ en interprétation signée.

Exemple sur 4 bits :

1101 = -8 + 4 + 1 = -3
int x = 42;
int *p = &x;
&p // adresse de x
p // adresse stockée
*p // valeur pointée
tab[i] == *(tab + i)
p + 1 // avance de sizeof(*p)
liste vide : struct Node *head = NULL;
head -> [value | next] -> [value | next] -> NULL

p->field == (*p).field

Pour modifier un pointeur de l’appelant : passer un double pointeur.

void f(int **pp) {
*pp = NULL;
}
f(&p);
Action sur le bit kExpression
testerx & (1u << k)
mettre à 1`x
mettre à 0x &= ~(1u << k)
inverserx ^= (1u << k)
extraire 0/1(x >> k) & 1u
~ NOT bit à bit
& AND bit à bit
| OR bit à bit
^ XOR bit à bit

Ne pas confondre && / || (logique, court-circuit) avec & / | (bit à bit).