Articles of glibc

Existe-t-il une implémentation de tableau / tableau dynamic à redimensionnement automatique pour C accompagnant glibc?

Existe-t-il une implémentation de tableau dynamic dans glibc ou l’une des bibliothèques standard Linux pour C? Je veux pouvoir append à une liste sans me soucier de sa taille. Je sais que std :: vector existe pour C ++, mais j’ai besoin de l’équivalent C.

libc générateur de nombre aléatoire défectueux?

Considérons un algorithme pour tester la probabilité qu’un certain nombre soit choisi dans un ensemble de N nombres uniques après un nombre spécifique d’essais (par exemple, avec N = 2, quelle est la probabilité à la roulette (sans 0) que X ait besoin Noir pour gagner?). La dissortingbution correcte pour cela est pow (1-1 / […]

Accéder aux données .eh_frame pendant l’exécution

J’essaie d’accéder au contenu de la section .eh_frame d’un programme en cours d’exécution depuis celui-ci (plus précisément, le programme est le kernel Linux 2.6.34.8). Le .eh_frame contient des données utiles utilisées pour la gestion des exceptions et j’aimerais les utiliser en interne à partir du code du kernel. La section est déjà écrite par gcc […]

Comment charger des symboles définis par la bibliothèque à un emplacement spécifié?

Le test est sur Ubuntu 12.04, 32 bits, avec gcc 4.6.3. En gros, je fais quelques manipulations binarys sur les binarys ELF et je dois maintenant assembler un programme d’assemblage et garantir que les symboles libc sont chargés sur une adresse prédéfinie. Laissez-moi élaborer dans un exemple simple. Supposons que, dans le code d’origine, les […]

Pourquoi le type d’argument de `putchar ()`, `fputc ()` et `putc ()` n’est pas `char`?

Est-ce que quelqu’un sait pourquoi le type d’argument de putchar() , fputc() et putc() n’est pas un caractère, mais le type d’argument de putwchar() , fputwc() et putwc() est wchar_t ? Voir aussi ceci et cela .

fuite de mémoire getpwnam_r

J’utilise getpwnam_r pour gérer les connexions client dans mes programmes. Malheureusement, il semble allouer un tampon qu’il ne libère jamais. La sortie valgrind pertinente: ==15774== 536 (104 direct, 432 indirect) bytes in 2 blocks are definitely lost in loss record 1 of 3 ==15774== at 0x4C24CFE: malloc (in /usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so) ==15774== by 0x5143B5A: nss_parse_service_list (in /lib64/libc-2.10.1.so) […]

erreur détectée par la glibc

Quelqu’un peut-il m’aider à comprendre ce message d’erreur? *** glibc detected *** ./kprank_new3_norm: munmap_chunk(): invalid pointer: 0x00000000096912d0 *** ======= Backtrace: ========= /lib64/libc.so.6(cfree+0x1b6)[0x3df6e75a36] ./kprank_new3_norm[0x409277] ./kprank_new3_norm[0x4092a9] ./kprank_new3_norm[0x4092ea] ./kprank_new3_norm[0x40941f] ./kprank_new3_norm[0x40943b] ./kprank_new3_norm[0x40945f] ./kprank_new3_norm[0x409628] ./kprank_new3_norm[0x4096a7] ./kprank_new3_norm[0x40968d] ./kprank_new3_norm[0x409750] ./kprank_new3_norm[0x4097a5] ./kprank_new3_norm[0x404846] /lib64/libc.so.6(__libc_start_main+0xf4)[0x3df6e1d974] ./kprank_new3_norm(__gxx_personality_v0+0x99)[0x4017f9] ======= Memory map: ======== 00400000-00412000 r-xp 00000000 08:21 25795429 /home/rkrish/abhik/kprank/kprank_new3_norm 00611000-00612000 rw-p 00011000 08:21 25795429 /home/rkrish/abhik/kprank/kprank_new3_norm 09691000-096d3000 rw-p 09691000 […]

Force free () à renvoyer la mémoire de malloc à l’OS

On dirait que même après avoir libéré toute la mémoire d’un processus Linux alloué par malloc (), la mémoire est toujours réservée au processus et n’est pas renvoyée au système d’exploitation. L’exécution de l’outil Valgrind Massif par défaut ne révèle aucune fuite. Exécuter valgrind avec –pages-as-heap = yes révèle ceci: -> 13,77% (7 655 424 […]

Comment puis-je corriger une erreur «Version ‘GLIBC_2.14’ introuvable»

J’ai compilé un programme C sous Ubuntu 12.04, créé un paquet Debian et souhaité l’installer sur un serveur exécutant Debian Lenny. La dernière fois que j’ai fait cela (il y a environ deux mois) cela a fonctionné: je pouvais installer le paquet et exécuter le binary. Mais maintenant je reçois le message d’erreur suivant: (binary’s […]

Comment un événement de socket est-il propagé / converti en epoll?

Je suis curieux de savoir comment epoll_wait () reçoit l’événement selon lequel un socket enregistré (avec epoll_ctl ()) est prêt pour la lecture / écriture. Je crois que glibc s’en occupe comme par magie. Ensuite, existe-t-il un document décrivant comment les événements suivants peuvent être déclenchés pour un socket? EPOLLPRI EPOLLRDNORM EPOLLRDBAND EPOLLWRNORM EPOLLWRBAND EPOLLMSG […]