programmation_c_gcc
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
programmation_c_gcc [2009/11/30 16:18] – thierry | programmation_c_gcc [2010/07/13 16:16] (Version actuelle) – thierry | ||
---|---|---|---|
Ligne 2: | Ligne 2: | ||
====== debug ====== | ====== debug ====== | ||
+ | |||
+ | ===== core dump ===== | ||
+ | |||
+ | Lien: http:// | ||
+ | |||
===== memory leak ===== | ===== memory leak ===== | ||
+ | ==== cas 1 ==== | ||
+ | |||
+ | Essayer: **'' | ||
+ | |||
+ | Lien: http:// | ||
+ | |||
+ | ==== cas 2 ==== | ||
Lien: http:// | Lien: http:// | ||
Ligne 35: | Ligne 47: | ||
===== backtrace ===== | ===== backtrace ===== | ||
Lien: http:// | Lien: http:// | ||
+ | |||
+ | ====== Divers ====== | ||
+ | ===== flock ===== | ||
+ | Accès partagé, coopératif, | ||
+ | |||
+ | ==== logs ==== | ||
+ | Pour écrire en fin de fichier (des logs par exemple) | ||
+ | |||
+ | Soit un fichier de log ouvert comme cela: | ||
+ | |||
+ | if ( -1 == (fd=open(filename, | ||
+ | perror(" | ||
+ | } | ||
+ | else { | ||
+ | // ... suite plus bas... | ||
+ | } | ||
+ | |||
+ | Donc: | ||
+ | | fd | descripteur du fichier ouvert en ecriture seule | | ||
+ | |||
+ | On bloque ainsi, à partir de la fin du fichier: | ||
+ | // bloquer l' | ||
+ | struct flock lock; | ||
+ | | ||
+ | memset( & | ||
+ | | ||
+ | lock.l_type = F_WRLCK; | ||
+ | lock.l_whence = SEEK_END; | ||
+ | lock.l_start = 0; | ||
+ | lock.l_len = 0; | ||
+ | | ||
+ | if ( -1==fcntl(fd, | ||
+ | else { | ||
+ | // ... suite plus bas... | ||
+ | } | ||
+ | Voila, c'est bloqué, à partir de la fin du fichier (connu a cette instant) et au dela. | ||
+ | |||
+ | On imagine qu'on se positionne a la fin du fichier et qu'on ecrit dedans... | ||
+ | |||
+ | Pour retirer le verrou... il faut debloquer __tout__ le fichier ! | ||
+ | memset( & | ||
+ | | ||
+ | lock.l_type = F_UNLCK; | ||
+ | lock.l_whence = SEEK_SET; | ||
+ | lock.l_start = 0; | ||
+ | lock.l_len = 0; | ||
+ | | ||
+ | if ( -1==fcntl(fd, | ||
+ | |||
+ | J'ai calé quelques instants sur cette " | ||
+ | |||
+ | D' | ||
===== uuid ===== | ===== uuid ===== | ||
Ligne 42: | Ligne 106: | ||
# aptitude install uuid-dev | # aptitude install uuid-dev | ||
- | Composer: | + | Composer |
#include < | #include < | ||
#include < | #include < | ||
Ligne 66: | Ligne 130: | ||
Compiler: | Compiler: | ||
- | $ gcc -g -Wall -std=gnu99 | + | $ gcc -o uuid uuid_test.c -luuid |
Executer: | Executer: |
programmation_c_gcc.txt · Dernière modification : 2010/07/13 16:16 de thierry