Bonjour à tous,
Voici des années que je planche sur un gros problème avec les sockets en C, et je me décide enfin a poser la question parce que je ne trouve jamais rien de satisfaisant.
Comment récupérer de façon fiable une trame réseau ? Mon problème est que je n'ai jamais réussi à être certain de la quantité de donné à lire pour obtenir complètement UNE trame. Soit j'en lis trop, soit pas assez.
Je pensais avoir résolu le (…)
Forum Programmation.c traceroute udp ou comment faire sans icmp ?
Hello,
je sais que les prog de traceroute d'aujourd'hui utilisent udp pour qu'un utilisateur sans les droit root puissent l'exécuter. Ce que je ne comprend pas c'est comment cela fonctionne vu qu'effecivement les paquets udp sont envoyé avec des ttl qui augmentent mais les erreurs sont renvoyées en ICMP (donc il faut ouvrir un raw socket pour les recevoir...).
J'ai analysé avec tcpdump et effectivement, on a aucun reply udp mais que icmp, je ne comprend pas d'ou sortent les (…)
je sais que les prog de traceroute d'aujourd'hui utilisent udp pour qu'un utilisateur sans les droit root puissent l'exécuter. Ce que je ne comprend pas c'est comment cela fonctionne vu qu'effecivement les paquets udp sont envoyé avec des ttl qui augmentent mais les erreurs sont renvoyées en ICMP (donc il faut ouvrir un raw socket pour les recevoir...).
J'ai analysé avec tcpdump et effectivement, on a aucun reply udp mais que icmp, je ne comprend pas d'ou sortent les (…)
Forum Programmation.c probleme fork/exec/kill
Bonjour,
Je lance un programme en console :
# mon_prog &
puis je le termine avec :
# pkill -15 mon_prog
(15 = SIGTERM)
et le programme exit proprement.
Maintenant, au lieu de lancer mon programme en ligne de commande, je le lance depuis un programme de test :
fork + execl(mon_prog)
Je lance mon test puis j'essaye de kill mon programme, mais ca ne marche pas :
pkill -15 mon_prog ==> aucun effet
pkill -9 mon_prog ==> ca marche (…)
Je lance un programme en console :
# mon_prog &
puis je le termine avec :
# pkill -15 mon_prog
(15 = SIGTERM)
et le programme exit proprement.
Maintenant, au lieu de lancer mon programme en ligne de commande, je le lance depuis un programme de test :
fork + execl(mon_prog)
Je lance mon test puis j'essaye de kill mon programme, mais ca ne marche pas :
pkill -15 mon_prog ==> aucun effet
pkill -9 mon_prog ==> ca marche (…)
Forum Programmation.c communication entre fork() via un tableau en mémoire
Bonjour,
Je cherche à partager un tableau de données unique afin de matérialiser la communication entre les fork(). L'idée est que le père renseigne ce tableau lors de chaque création de fils afin que ces derniers puissent s'échanger des informations, en incluant une notion de signal obligeant les fils à écrire dans ce tableau tour à tour.
On m'a suggéré d'utiliser un sémaphore ainsi qu'un segment de mémoire partagé, mais je n'arrive pas à reproduire un squelette sur ce type (…)
Je cherche à partager un tableau de données unique afin de matérialiser la communication entre les fork(). L'idée est que le père renseigne ce tableau lors de chaque création de fils afin que ces derniers puissent s'échanger des informations, en incluant une notion de signal obligeant les fils à écrire dans ce tableau tour à tour.
On m'a suggéré d'utiliser un sémaphore ainsi qu'un segment de mémoire partagé, mais je n'arrive pas à reproduire un squelette sur ce type (…)
Forum Programmation.c GCC et taille des exécutables
Bonsoir,
je viens de me rendre compte que le programme suivant:
génère un exécutable de 6,2ko lorsqu'on le compile avec GCC de la façon suivante:
gcc minimal.c -o minimal
Pourtant normalement (sous linux) le code assembleur de ce programme est le suivant:
je viens de me rendre compte que le programme suivant:
fichier: minimal.c
int main(){ return 0;}
génère un exécutable de 6,2ko lorsqu'on le compile avec GCC de la façon suivante:
gcc minimal.c -o minimal
Pourtant normalement (sous linux) le code assembleur de ce programme est le suivant:
.global _start
_start: mov $1,%eax /* Mettre 1 dans eax (appel système ''Exit'') */
mov $0,%ebx /* Mettre 0 dans ebx (valeur de retour du programme) */
int$0x80 /* Interruption 0x80, (…)
Forum Programmation.c Extraire des frames d'un fichier theora
Bonjour,
J'essaie d'extraire des frames d'un fichier vidéo au format theora.
J'utilise un programme d'exemple de décodage que j'ai trouvé sur le site de theora. Il extrait les frames en YUV. Seulement il y a différentes versions du format YUV.
Si j'extrais toutes les frames je peux le ré-encoder en mpeg avec yuv2lav mais ce n'est pas exactement ce que je veux, je veux extraire les frames sous forme d'images (ppm, jpeg, ...)
(Ce que j'aimerais faire également c'est encoder (…)
J'essaie d'extraire des frames d'un fichier vidéo au format theora.
J'utilise un programme d'exemple de décodage que j'ai trouvé sur le site de theora. Il extrait les frames en YUV. Seulement il y a différentes versions du format YUV.
Si j'extrais toutes les frames je peux le ré-encoder en mpeg avec yuv2lav mais ce n'est pas exactement ce que je veux, je veux extraire les frames sous forme d'images (ppm, jpeg, ...)
(Ce que j'aimerais faire également c'est encoder (…)
Forum Programmation.c envoyer un caractère sur le port USB
J'ai commencé à programmé sur le port USB,je cherche un exemple dans le net en C sur Linux,un programme qui permet d'envoyer un caractère sur le port USB,mais j'ai pas trouvé des choses intéressants ;
je ne sais si vous pouvez m'aider
Je vous remercie.
Forum Programmation.c Passage de données au handler d'un timer
Bonjour !
J'ai besoin de passer des données au Handler de mon timer.
Avec setitimer, il semble que cela ne soit pas possible puisque la signature du handler à fournir à la structure sigaction est void ( *handler)(int iSignal )
Une idée ?
Merci
Sylvain
J'ai besoin de passer des données au Handler de mon timer.
Avec setitimer, il semble que cela ne soit pas possible puisque la signature du handler à fournir à la structure sigaction est void ( *handler)(int iSignal )
Une idée ?
Merci
Sylvain
Forum Programmation.c Recherche ferme de compilation
Bonjour à tous,
Je suis à la recherche d'une ferme de compilation.
Celle de Sourceforge.net est à priori fermée...
Je veux compiler mon morceau de code sous NetBSD, FreeBSD, OpenBSD, SCO, ...
J'ai essayé XEN sous une Debian mais ça marche pas très fort.
Une idée ?
Je suis à la recherche d'une ferme de compilation.
Celle de Sourceforge.net est à priori fermée...
Je veux compiler mon morceau de code sous NetBSD, FreeBSD, OpenBSD, SCO, ...
J'ai essayé XEN sous une Debian mais ça marche pas très fort.
Une idée ?
Forum Programmation.c Synthèse & Reconnaissance vocale
Bonjour,
Je m'interesse à la reconnaissance vocale dans le but de piloter un programme très simple. Avec une dizaine de mots tout au plus. Il ne s'agit donc pas de reconnaissance vocale véritable mais plutôt de "pilotage vocal". Connaissez-vous une librairie regroupant l'essentiel ?
Même question à propos de la synthèse vocale, une librairie toute simple ?
Merci d'avance
Je m'interesse à la reconnaissance vocale dans le but de piloter un programme très simple. Avec une dizaine de mots tout au plus. Il ne s'agit donc pas de reconnaissance vocale véritable mais plutôt de "pilotage vocal". Connaissez-vous une librairie regroupant l'essentiel ?
Même question à propos de la synthèse vocale, une librairie toute simple ?
Merci d'avance
Forum Programmation.c Gestion des accents et caractères bien français !
Bonjour,
Je suis en train de réaliser petit programme dans le cadre de mes études. J'aimerai y ajouter la gestion des accents. Je voudrai simplement remplacer les lettres accentuées par leur lettre "normale". Un "é" en "e" si vous préférez.
Mon programme lit dans un fichier des blocs de caractères. Je traite ensuites ces blocs caractères par caractères. Mais les lettres accentuées ne sont pas reconnues
ne fonctionne pas.
Merci de (…)
Je suis en train de réaliser petit programme dans le cadre de mes études. J'aimerai y ajouter la gestion des accents. Je voudrai simplement remplacer les lettres accentuées par leur lettre "normale". Un "é" en "e" si vous préférez.
Mon programme lit dans un fichier des blocs de caractères. Je traite ensuites ces blocs caractères par caractères. Mais les lettres accentuées ne sont pas reconnues
if (lettre == 'é')
{
lettre = 'e';
}
ne fonctionne pas.
Merci de (…)
Forum Programmation.c unicode et ncurses
Bonjour,
Je suis en train de développer un petit projet utilisant ncurses en C.
Dans ce projet, j'utilise unicode (wchar_t) et le codage utf8. Aucun problème avec printf() et dérivés, tout baigne dans l'huile.
Mais impossible de travailler avec ncurses (et c'est pourtant nécessaire dans ce projet).
Par exemple, les fonctions wadd_wchstr() et waddwstr() semblent ne pas être reconnues lors de la compilation (j'obtiens le diagnostique : " implicit declaration of function 'wadd_wchstr’ ", alors que, j'ai vérifié, le prototype (…)
Je suis en train de développer un petit projet utilisant ncurses en C.
Dans ce projet, j'utilise unicode (wchar_t) et le codage utf8. Aucun problème avec printf() et dérivés, tout baigne dans l'huile.
Mais impossible de travailler avec ncurses (et c'est pourtant nécessaire dans ce projet).
Par exemple, les fonctions wadd_wchstr() et waddwstr() semblent ne pas être reconnues lors de la compilation (j'obtiens le diagnostique : " implicit declaration of function 'wadd_wchstr’ ", alors que, j'ai vérifié, le prototype (…)
Forum Programmation.c Cron ou sleep() ?
Bonjour,
Je me colle d'ici peu au codage d'un petit programme qui vérifiera chaque minute la correspondance entre l'heure actuelle et l'heure de réveil demandée par des utilisateurs d'un service téléphonique basé sur Asterisk (info placée dans un fichier).
J'avais déjà le même programme codé avec les pieds et en bash (vite fait, bien faitfonctionnel, mais comme le nombre d'utilisateurs explose, j'ai décidé de le recoder en C (et avec les mains cette fois) pour réduire le temps d'exécution (…)
Je me colle d'ici peu au codage d'un petit programme qui vérifiera chaque minute la correspondance entre l'heure actuelle et l'heure de réveil demandée par des utilisateurs d'un service téléphonique basé sur Asterisk (info placée dans un fichier).
J'avais déjà le même programme codé avec les pieds et en bash (vite fait, bien faitfonctionnel, mais comme le nombre d'utilisateurs explose, j'ai décidé de le recoder en C (et avec les mains cette fois) pour réduire le temps d'exécution (…)
Forum Programmation.c Charger plusieurs instances d'une bibliothèque dynamique
Bien le bonjour,
J'ai un problème technique pour une application un peu tordue : je veux charger plusieurs instances d'une bibliothèque dynamique dans un programme.
Le problème, et c'est bien sûr l'intérêt des bibliothèques partagées, est que si je fais plusieurs appels à dlopen/LoadLibrary, une seule instance sera réellement chargé, avec les mêmes variables globales... alors que je voudrais des espaces mémoires indépendants, pour les data comme pour le text (la bibliothèque en question peut avoir différentes versions), mais entièrement (…)
J'ai un problème technique pour une application un peu tordue : je veux charger plusieurs instances d'une bibliothèque dynamique dans un programme.
Le problème, et c'est bien sûr l'intérêt des bibliothèques partagées, est que si je fais plusieurs appels à dlopen/LoadLibrary, une seule instance sera réellement chargé, avec les mêmes variables globales... alors que je voudrais des espaces mémoires indépendants, pour les data comme pour le text (la bibliothèque en question peut avoir différentes versions), mais entièrement (…)
Forum Programmation.c Manipulation de clé
Bonjour à tous,
Durant mon temps libre, je bidouille en C et en crypto et je me demandais comment gérer directement (sans passer par des librairies telles GMP) des clés de 256 bits. J'entend par la générer ces clés, les stocker et les manipuler (faire des XOR avec un bloc de texte par exemple).
J'imagine que cela doit passer par des tableaux, mais n'étant pas expert dans le domaine, j'aurais voulu avoir un peu de doc sur le sujet.
Note (…)
Durant mon temps libre, je bidouille en C et en crypto et je me demandais comment gérer directement (sans passer par des librairies telles GMP) des clés de 256 bits. J'entend par la générer ces clés, les stocker et les manipuler (faire des XOR avec un bloc de texte par exemple).
J'imagine que cela doit passer par des tableaux, mais n'étant pas expert dans le domaine, j'aurais voulu avoir un peu de doc sur le sujet.
Note (…)
Forum Programmation.c glade et reverse
avec glade 2.12.1 nous pouvons fabriquer une interface graphique
et générer son code source pour la compilation
la question est: comment à partir du code source d'un logiciel gtk
regénérer le document .glade afin de retravailler son interfaçage graphique
robertix
et générer son code source pour la compilation
la question est: comment à partir du code source d'un logiciel gtk
regénérer le document .glade afin de retravailler son interfaçage graphique
robertix
Forum Programmation.c chantier gmeeting
gmeeting est une application de visioconférence ip (ipv4 et plus)
pour gnome en gtkc
avec les codecs vorbis theora
avec affichage en plein écran et carnet d'adresses de contacts
http://www.ponge.com/telechargements/gmeeting.html
robertix
pour gnome en gtkc
avec les codecs vorbis theora
avec affichage en plein écran et carnet d'adresses de contacts
http://www.ponge.com/telechargements/gmeeting.html
robertix
Forum Programmation.c Extraire une fonction d'un programme
Bonjour,
Dans le cadre d'un stage, je dois extraire des fonctions de traitements en C d'un logiciel afin de les adapter dans un autre.
La grosse difficulté à laquelle je suis confronté c'est que pour extraire une seule fonction je dois inclure de (très) nombreuses dépendances qui contiennent les fonctions qui sont appelées, qui elle mêmes en appellent d'autres etc....
Le tout est disséminé dans de nombreux fichiers avec beaucoup d'inclusions.
Pour le moment j'essaye de faire ce travail à (…)
Dans le cadre d'un stage, je dois extraire des fonctions de traitements en C d'un logiciel afin de les adapter dans un autre.
La grosse difficulté à laquelle je suis confronté c'est que pour extraire une seule fonction je dois inclure de (très) nombreuses dépendances qui contiennent les fonctions qui sont appelées, qui elle mêmes en appellent d'autres etc....
Le tout est disséminé dans de nombreux fichiers avec beaucoup d'inclusions.
Pour le moment j'essaye de faire ce travail à (…)
Forum Programmation.c Compilation de logiciels GNU sous Windows XP
Hello,
Je fais du développement Java et j'utilise des bibliothèques natives (so, dll) pour certaines tâches (par exemple la dll Lame pour l'encodage en mp3).
Je cherche à compiler des logiciels GNU (comme Lame, mais ça pourrait être autre chose à l'avenir) ) sous Windows (vu que c'est le OS que j'utilise au boulot pour le développement).
J'ai essayé différentes méthodes:
1) Installer Cygwin, là la compilation se passe sans problème, mais il faut redistribuer la dll cygwin.dll avec le (…)
Je fais du développement Java et j'utilise des bibliothèques natives (so, dll) pour certaines tâches (par exemple la dll Lame pour l'encodage en mp3).
Je cherche à compiler des logiciels GNU (comme Lame, mais ça pourrait être autre chose à l'avenir) ) sous Windows (vu que c'est le OS que j'utilise au boulot pour le développement).
J'ai essayé différentes méthodes:
1) Installer Cygwin, là la compilation se passe sans problème, mais il faut redistribuer la dll cygwin.dll avec le (…)
Forum Programmation.c Comment lire un ficher taré sans "detarer"
Bonjour,
Je dois stocker plusieurs gros fichiers dans un seul . évidement je pense a tar . Mais je dois aussi y avoir accès SANS "detarer" (ce serait trop lourd).
J'ai regardé libtar mais soit j'ai pas compris soit cela ne permet pas d'accéder au fichiers.
Connaissez-vous un moyen/librairie pour faire cela ?
Il n'y a pas besoin de compresser.
Toute autres alternative est la bienvenue, j'ai pas l'impression que je soit le premier a avoir ce genre de besoin.
(…)
Je dois stocker plusieurs gros fichiers dans un seul . évidement je pense a tar . Mais je dois aussi y avoir accès SANS "detarer" (ce serait trop lourd).
J'ai regardé libtar mais soit j'ai pas compris soit cela ne permet pas d'accéder au fichiers.
Connaissez-vous un moyen/librairie pour faire cela ?
Il n'y a pas besoin de compresser.
Toute autres alternative est la bienvenue, j'ai pas l'impression que je soit le premier a avoir ce genre de besoin.
(…)
Forum Programmation.c relai de connection TCP via apache
Bonjour,
Étant comme beaucoup de gens confronté à un blocage de port, je voudrais élaborer une solution dont voici le principe :
Donnée du problème :
* Serveur x en local qui est en écoute d'une connections sur un port y
* Serveur HTTP (apache qui héberge mon sites ainsi que d'autres services)
* Un client z qui ne peux pas se connecter directement au serveur x car le port y est bloqué en sortie par le routeur.
Le mode (…)
Étant comme beaucoup de gens confronté à un blocage de port, je voudrais élaborer une solution dont voici le principe :
Donnée du problème :
* Serveur x en local qui est en écoute d'une connections sur un port y
* Serveur HTTP (apache qui héberge mon sites ainsi que d'autres services)
* Un client z qui ne peux pas se connecter directement au serveur x car le port y est bloqué en sortie par le routeur.
Le mode (…)
Forum Programmation.c Problèmes entre mailsnarf et libnids
Bonjour,
Je suis ici en désepoir de cause. J'ai vu que liubnids avait était abordé ici il y a un an, donc je me permet de poser ma question :
Sauriez vous comment faire pour utiliser mailsnarf avec des fichier pcap?
J'ai déjà installé tous les patchs pour mailsnarf à cet effet. cependant, je n'arrive toujours pas à retrouver mes mails dans mes fichiers pcap.
Apparemment le problème viendrait de la fonction process_tcp().
Auriez vous des idées?
Merci
Je suis ici en désepoir de cause. J'ai vu que liubnids avait était abordé ici il y a un an, donc je me permet de poser ma question :
Sauriez vous comment faire pour utiliser mailsnarf avec des fichier pcap?
J'ai déjà installé tous les patchs pour mailsnarf à cet effet. cependant, je n'arrive toujours pas à retrouver mes mails dans mes fichiers pcap.
Apparemment le problème viendrait de la fonction process_tcp().
Auriez vous des idées?
Merci
Forum Programmation.c Locker un fichier
Bonjour,
Je souhaiterais savoir si il été possible :
- le programme 'a' lock le fichier 'f'
- un autre programme 'b' tente d'ecrire dans 'f'
- l'ecriture dans 'f' est interdite.
Existe-il une commande Linux ou une fonction C qui pourais faire l'affaire ?
Sachant que je ne souhaite pas passer par les droits classiques ; chmod.
Je cherches juste un moyen de locker exclusivement un fichier.
Merci d'avance
Je souhaiterais savoir si il été possible :
- le programme 'a' lock le fichier 'f'
- un autre programme 'b' tente d'ecrire dans 'f'
- l'ecriture dans 'f' est interdite.
Existe-il une commande Linux ou une fonction C qui pourais faire l'affaire ?
Sachant que je ne souhaite pas passer par les droits classiques ; chmod.
Je cherches juste un moyen de locker exclusivement un fichier.
Merci d'avance
Forum Programmation.c directive pragma dans une macro
Petite question pour les furieux du preprocessing : Comment inclure une directive pragma dans une macro?
Par ex: #define OPT_SIZE #pragma Osize
Bien sûr, lorsque je fais un OPT_SIZE, je me fais jeter... À noter que j'utilise le compilo pour Arm ADS, mais si qq un a une solution pour un autre compilo, je suis preneur.
Par ex: #define OPT_SIZE #pragma Osize
Bien sûr, lorsque je fais un OPT_SIZE, je me fais jeter... À noter que j'utilise le compilo pour Arm ADS, mais si qq un a une solution pour un autre compilo, je suis preneur.
Forum Programmation.c fonction de hashage de chaine de characteres
Bonjour,
Je suis a la recherche d'une bonne fonction de hachage pour des chaines de characteres qui soit rapide (pas une fonction cryptographique).
Qui ait la propriete suivante:
Soit a et b 2 chaines de characteres.
Soit ab la concatenation de a et b:
hash(ab) = une fonction rapide a calculer a partir de hash(a) et hash(b)
L'idee c'est de pouvoir calculer le hash de la concatenation a partir du hash des sous chaines.
Quelqu'un a une idee?
Je suis a la recherche d'une bonne fonction de hachage pour des chaines de characteres qui soit rapide (pas une fonction cryptographique).
Qui ait la propriete suivante:
Soit a et b 2 chaines de characteres.
Soit ab la concatenation de a et b:
hash(ab) = une fonction rapide a calculer a partir de hash(a) et hash(b)
L'idee c'est de pouvoir calculer le hash de la concatenation a partir du hash des sous chaines.
Quelqu'un a une idee?