Hello world,
J'ai honte de vous poser une question qui m'a l'air vraiment aussi conne (alors que j'ai cherché !), mais comment attendre l'arrêt d'un processus quelconque à partir de son pid?
(waitpid, wait, wait4 et wait3 ne marchant que sur un processus fils)
(Autrement que for(;open("/proc/" + pid) != ENOENT;); s'il vous plait ;))
Forum Programmation.c Soucis pour compiler xvidcap...
Bonjour,
alors voilà, je ne fais pas cette demande pour qu'on critique le fait que je veuille utiliser la version source d'xvidcap, mais parce que j'aimerai bien comprendre pourquoi il ne veut pas se compiler.
Il est fourni avec sa propre version de ffmpeg. Si je désactive l'option de configure qui va bien, de façon à utiliser celle du système, j'ai une erreur curieuse lors de la compilation du fichier codecs.c :
$ ./configure ---without-forced-embedded-ffmpeg --prefix=/usr && make
alors voilà, je ne fais pas cette demande pour qu'on critique le fait que je veuille utiliser la version source d'xvidcap, mais parce que j'aimerai bien comprendre pourquoi il ne veut pas se compiler.
Il est fourni avec sa propre version de ffmpeg. Si je désactive l'option de configure qui va bien, de façon à utiliser celle du système, j'ai une erreur curieuse lors de la compilation du fichier codecs.c :
$ ./configure ---without-forced-embedded-ffmpeg --prefix=/usr && make
codecs.c:351: erreur: (…)
Forum Programmation.c Lecture de fichier binaire
Bonjour!
Je suis en train de faire un convertisseur d'un format de fichier binaire vers ascii, et je dois lire un float codé sur 2 bytes.
J'ai donc le code suivant:
Avec prt un pointeur sur void.
Lorsque j'édite mon fichier avec khexedit, cela commence comme ceci:
Et mon programme m'affiche ces mêmes lignes de la façon suivante:
Je suis en train de faire un convertisseur d'un format de fichier binaire vers ascii, et je dois lire un float codé sur 2 bytes.
J'ai donc le code suivant:
size=2;
ptr=(short int *)malloc(size);
fread(ptr,(size_t)size,1,data_file);
printf("%02X ",*((short int *)ptr));
free(ptr);
Avec prt un pointeur sur void.
Lorsque j'édite mon fichier avec khexedit, cela commence comme ceci:
47d0 63e8 6fa0 43e8 45dc 6fa0 ...
Et mon programme m'affiche ces mêmes lignes de la façon suivante:
FFFFD047 FFFFE863 FFFFA06F FFFFE843 FFFFDC45 (…)
Forum Programmation.c cc, as et ld
Bonjour,
Je dois compiler le programme suivant :
J'utilise les commandes suivantes :
Pas de problèmes à ce stade. Par contre l'utilisation de la commande ld s'avère délicate. J'ai finalement réussi à m'en servir de cette façon :
Je dois compiler le programme suivant :
#include "stdio.h";
long int factorielle(int n) {
if (n<2) return 1; else return n*factorielle(n-1);
}
int main(int argc, char *argv[]){
int i;
printf("Hello World!\n\n");
for(i=0;i<10;i++)
printf("%i! = %li\n",i,factorielle(i));
return 0;
}
J'utilise les commandes suivantes :
cc -c -S toto.c
as -o toto.o toto.s
Pas de problèmes à ce stade. Par contre l'utilisation de la commande ld s'avère délicate. J'ai finalement réussi à m'en servir de cette façon :
ld -o toto (…)
Forum Programmation.c Algo / Determiner le plus grand rectangle d'une région
Bonjour
Je recherche un algo qui me permettrais de determiner le rectangle le plus grand d'un polygone.
Malheureusement je manque de vocabulaire concernant l'algorithmie.
Pouvez vous me donner des pistes, des liens ou du vocabulaire pour faire mes recherches svp ?
J'ai trouvé la fonction gdk-region-get-clipbox mais en fait elle retourne l'inverse.
http://developer.gnome.org/doc/API/2.0/gdk/gdk-Points-Rectan(...)
Merci de votre aide.
Je recherche un algo qui me permettrais de determiner le rectangle le plus grand d'un polygone.
Malheureusement je manque de vocabulaire concernant l'algorithmie.
Pouvez vous me donner des pistes, des liens ou du vocabulaire pour faire mes recherches svp ?
J'ai trouvé la fonction gdk-region-get-clipbox mais en fait elle retourne l'inverse.
http://developer.gnome.org/doc/API/2.0/gdk/gdk-Points-Rectan(...)
Merci de votre aide.
Forum Programmation.c probleme boucle infinie + sous programme
Bonjour,
J'ai un problème je dois dans le cadre scolaire réaliser un programme en c afin de sécuriser l'accès à une barrière pour cela je dois programmer sous devpic84c
J'ai un premier programme qui fonctionne mais le prof veut que je le simplifie
J'ai donc créer un deuxième programme
et la un problème
Je suis dans une boucle infinie
Faut il insérer le sous programme dans cette boucle?
Lorsque je ne le met pas dans la boucle
La compilation fonctionne
(…)
J'ai un problème je dois dans le cadre scolaire réaliser un programme en c afin de sécuriser l'accès à une barrière pour cela je dois programmer sous devpic84c
J'ai un premier programme qui fonctionne mais le prof veut que je le simplifie
J'ai donc créer un deuxième programme
et la un problème
Je suis dans une boucle infinie
Faut il insérer le sous programme dans cette boucle?
Lorsque je ne le met pas dans la boucle
La compilation fonctionne
(…)
Forum Programmation.c portabilité
Bonjour!
J'ai fait programme qui reçoit et envoie des paquets icmp. Je veux le rendre portable sur le système BSD! Quel sont les "includes" et directives du pré-processeur qu'il faut ajouter? et quoi encore?
merci
J'ai fait programme qui reçoit et envoie des paquets icmp. Je veux le rendre portable sur le système BSD! Quel sont les "includes" et directives du pré-processeur qu'il faut ajouter? et quoi encore?
merci
Forum Programmation.c Taille d'une video
Bonjour à tous,
Je cherche, à partir d'un programme écrit en C à obtenir la taille d'un fichier video. J'ai essayé avec libavformat et libavcodec. Mais j'obtiens un segmentation fault.
Voici le code, crée sur base de cet exemple : http://www.inb.uni-luebeck.de/~boehme/avcodec_sample.cpp:
av_register_all();
fprintf(stdout,"OK av_register\n");
// Open video file
if(av_open_input_file(&pFormatCtx, current_file, NULL, 0, NULL)!=0)
fprintf(stderr,"Erreur av_open_input");
else if(av_find_stream_info(pFormatCtx)>0)
{
// Dump information about file onto standard error
dump_format(pFormatCtx, 0, current_file, FALSE);
fprintf(stdout,"Done\n");
}
else
fprintf(stderr,"Erreur av_find_stream");
La ligne à laquelle survient (…)
Je cherche, à partir d'un programme écrit en C à obtenir la taille d'un fichier video. J'ai essayé avec libavformat et libavcodec. Mais j'obtiens un segmentation fault.
Voici le code, crée sur base de cet exemple : http://www.inb.uni-luebeck.de/~boehme/avcodec_sample.cpp:
av_register_all();
fprintf(stdout,"OK av_register\n");
// Open video file
if(av_open_input_file(&pFormatCtx, current_file, NULL, 0, NULL)!=0)
fprintf(stderr,"Erreur av_open_input");
else if(av_find_stream_info(pFormatCtx)>0)
{
// Dump information about file onto standard error
dump_format(pFormatCtx, 0, current_file, FALSE);
fprintf(stdout,"Done\n");
}
else
fprintf(stderr,"Erreur av_find_stream");
La ligne à laquelle survient (…)
Forum Programmation.c comportement 'aléatoire'
Bonjour,
je ne comprend pas pourquoi le programme ci-dessous se termine parfois correctement, parfois avec une erreur de segmentation (core dumped).
Quelqu'un pourrait-il m'expliquer d'où vient le problème ?
Y-aurait-il une limitation de la taille des tableaux (8 Mo ?) ?
Merci d'avance
je ne comprend pas pourquoi le programme ci-dessous se termine parfois correctement, parfois avec une erreur de segmentation (core dumped).
int main()
{
double tab[1047575];
tab[0] = 0;
return 0;
}
Quelqu'un pourrait-il m'expliquer d'où vient le problème ?
Y-aurait-il une limitation de la taille des tableaux (8 Mo ?) ?
Merci d'avance
Forum Programmation.c modifier une variable
Préambule : j'ai jamais programmé de ma vie en C mais la, j'ai un petit besoin.
Objectif : plutot que le répertoire crée soit /home/user, qu'il soit /home/eleve/user
-> je suis dans les sources du module d'authentification pam_mkhomedir
dans le programme, la variable dirigeant la création est :
"dir". Elle a pour forme : /home/user
or j'aimerai intercalé la chaine "eleve/" pour que ca me donne /home/eleve/user
comment qu'on fait ?
La fonction :
Objectif : plutot que le répertoire crée soit /home/user, qu'il soit /home/eleve/user
-> je suis dans les sources du module d'authentification pam_mkhomedir
dans le programme, la variable dirigeant la création est :
"dir". Elle a pour forme : /home/user
or j'aimerai intercalé la chaine "eleve/" pour que ca me donne /home/eleve/user
comment qu'on fait ?
La fonction :
void
copymkdir(char const * dir, char (…)
Forum Programmation.c Editer un fichier binaire à l'aide de templates
Bonjour,
J'utilise actuellement sous win l'utilitaire Hackman Templates Editor qui permet de décrire le contenu d'un fichier binaire à l'aide d'un fichier de type template.
Lorsque l'on applique ce template au fichier binaire, la visualisation et la modification de ce dernier en est grandement facilité mais les opérations sont quand même réduites...
Existe-t-il, en Open Source, un outil graphique qui proposerait les mêmes fonctionnalités de base et qui permettrait en plus de faire un 'rechercher/remplacer' puissant sur un bloc particulier (…)
J'utilise actuellement sous win l'utilitaire Hackman Templates Editor qui permet de décrire le contenu d'un fichier binaire à l'aide d'un fichier de type template.
Lorsque l'on applique ce template au fichier binaire, la visualisation et la modification de ce dernier en est grandement facilité mais les opérations sont quand même réduites...
Existe-t-il, en Open Source, un outil graphique qui proposerait les mêmes fonctionnalités de base et qui permettrait en plus de faire un 'rechercher/remplacer' puissant sur un bloc particulier (…)
Forum Programmation.c Programmation multiprocesseur
Bonjour,
J'ai une petite question de débutant a laquelle je n'arrive pas a trouver la réponse : en C comment on optimise son code pour des multiprocesseurs ?
En fait je précise : j'ai un ordi qui a deux processeurs double-coeur (donc ca fait au total...). On fork ? on utilise les threads ?
Merci !
J'ai une petite question de débutant a laquelle je n'arrive pas a trouver la réponse : en C comment on optimise son code pour des multiprocesseurs ?
En fait je précise : j'ai un ordi qui a deux processeurs double-coeur (donc ca fait au total...). On fork ? on utilise les threads ?
Merci !
Forum Programmation.c Killer un processus sans fermer la socket ?
Salut à tous. Dans le cadre d'une reproduction d'incident je tente de flooder un serveur avec des mauvaise deconnection. Donc pour se faire j'ai un process maitre qui creer des fils - qui se connectent donc, et puis au bout d'un certain tps le maitre fait un kill des process avec le signal SIGKILL. Le probleme c'est qu'en tuant ses processus fils, les socket sont fermées proprement et c'est ce que j'aimerais éviter. Quelqu'un a t il une idee ? (…)
Forum Programmation.c Pointeurs et gestion mémoire
Bonjour à tous,
j'ai écris un code en fortran 90 et j'ai récemment décidé de lui ajouter une belle
interface gtk. Rien de plus simple pourrait on dire ... au détail près qu'il faut que je
'traduise' mon code fortran en C. Connaissant le langage C je ne m'inquiète pas
trop pour autant .. toute fois une question me démange:
Dans mon code en fortran j'alloue la mémoire dynamiquement de façon casi-systématique.
Ceci est très facile en fortran y compris (…)
j'ai écris un code en fortran 90 et j'ai récemment décidé de lui ajouter une belle
interface gtk. Rien de plus simple pourrait on dire ... au détail près qu'il faut que je
'traduise' mon code fortran en C. Connaissant le langage C je ne m'inquiète pas
trop pour autant .. toute fois une question me démange:
Dans mon code en fortran j'alloue la mémoire dynamiquement de façon casi-systématique.
Ceci est très facile en fortran y compris (…)
Forum Programmation.c problème de struct et d'alignement
Dans ce petit programme, j'ai une erreur étrange (pour moi):
Me donne:
% gcc test.c && ./a.out
val: 134520856
Si je supprimme a, b ou c de la (…)
#include <stdio.h>;
typedef struct {
int row;
int col;
} *Pos;
typedef struct {
char* t;
int a;
int b;
int c;
Pos cur;
} *Doc;
int main(int argc, char *argv[])
{
Doc doc = malloc(sizeof(Doc));
Pos cur = malloc(sizeof(Pos));
cur->;row = 1;
doc->cur = cur;
printf("val: %d", doc->;cur->;row);
return 0;
}
Me donne:
% gcc test.c && ./a.out
val: 134520856
Si je supprimme a, b ou c de la (…)
Forum Programmation.c saisie de chaine et correction d'erreur autonome
Bonjour,
Je travaille sur un "bout" de code pour faire une saisie long int et gérer l'erreur de frappe (comme une lettre ou deux ou trois dans la saisie).
pour ça j'ai écrit un petit bout de code TESTEUR (compilable)
1ère idée Envoyer l'utilisateur se faire voir (un peu barbare) ;)
2ème idée un peut plus interessante vérifier que tous les caractères de la chaine sont des chiffres
Ca marche mais il est impossible de traiter l'erreur.
3éme idée et (…)
Je travaille sur un "bout" de code pour faire une saisie long int et gérer l'erreur de frappe (comme une lettre ou deux ou trois dans la saisie).
pour ça j'ai écrit un petit bout de code TESTEUR (compilable)
1ère idée Envoyer l'utilisateur se faire voir (un peu barbare) ;)
2ème idée un peut plus interessante vérifier que tous les caractères de la chaine sont des chiffres
Ca marche mais il est impossible de traiter l'erreur.
3éme idée et (…)
Forum Programmation.c Question pour C gourou !
Bonjour,
J'ai un problème un peu compliqué a résoudre, ca fait quelques semaines que je suis dessus.
Voilà, j'ai dans les eaux de 1000 fichiers .csv dans un repertoire qu'il faut que je charge en mémoire pour pouvoir faire des traitements dessus.
Les données sont conservees dans chaque fichier sous la forme
char[10] char[10] int float float float float
char[10] char[10] int float float float float
char[10] char[10] int float float float float, etc.
La solution que j'ai trouvé était (…)
J'ai un problème un peu compliqué a résoudre, ca fait quelques semaines que je suis dessus.
Voilà, j'ai dans les eaux de 1000 fichiers .csv dans un repertoire qu'il faut que je charge en mémoire pour pouvoir faire des traitements dessus.
Les données sont conservees dans chaque fichier sous la forme
char[10] char[10] int float float float float
char[10] char[10] int float float float float
char[10] char[10] int float float float float, etc.
La solution que j'ai trouvé était (…)
Forum Programmation.c Problème avec la compilation d'un programme GTK
Bonjour,
Je souhaite compiler le programme suivant :
Je tape la commande
gcc `pkg-config --libs --cflags gtk+-2.0` test.c -o test
et j'obtiens le méchant message :
/usr/bin/ld: skipping incompatible /usr/lib/libgtk-x11-2.0.so when searching for -lgtk-x11-2.0
/usr/bin/ld: skipping incompatible /usr/lib/libgtk-x11-2.0.so when searching for -lgtk-x11-2.0
/usr/bin/ld: cannot find -lgtk-x11-2.0
collect2: ld returned 1 exit status
Sachant que je suis sous Mandriva 2007 et (…)
Je souhaite compiler le programme suivant :
#include "stdlib.h";
#include "gtk/gtk.h";
int main(int argc, char **argv) {
/* Initialisation de GTK+ */
gtk_init(&argc, &argv);
return EXIT_SUCCESS;
}
Je tape la commande
gcc `pkg-config --libs --cflags gtk+-2.0` test.c -o test
et j'obtiens le méchant message :
/usr/bin/ld: skipping incompatible /usr/lib/libgtk-x11-2.0.so when searching for -lgtk-x11-2.0
/usr/bin/ld: skipping incompatible /usr/lib/libgtk-x11-2.0.so when searching for -lgtk-x11-2.0
/usr/bin/ld: cannot find -lgtk-x11-2.0
collect2: ld returned 1 exit status
Sachant que je suis sous Mandriva 2007 et (…)
Forum Programmation.c rattacher sur init
bonjour à tous,
je commence à étudier le C et bien évidemment j'essaie les divers exercices proposés ça et là. Et voici que je bute sur un problème qui est peut-être lié aux avancés de gcc.
Voici le soucis: j'essaie de faire en sorte qu'un processus soit rattaché à init
ex:
#include sys/types.h #include unistd.h main() { pid_t pid; pid = fork(); if (!pid) { sleep(3); execl("./executable", NULL, NULL); } else { return; } }mon soucis ici, c'est que (…)
Forum Programmation.c Question sur les fonctions RAND et SRAND
Bonjour,
J'ai vu que srand permettait la génération d'une suite aléatoire
et rand() une valeur aléatoire, (pseudo-aléatoire ne chippotons pas sur les termes :) , hors je voulais utiliser ces fonctions pour créer un fichier bidon qui servira a tester un mini-programme.
Hors je vois en lisant les résultats de ce mini programme que les chiffres générés sont tjrs les mêmes durant l'uptime de la machine.
comment résoudre ça ?
est ce que faire un ajout comme celui là résoudra (…)
J'ai vu que srand permettait la génération d'une suite aléatoire
et rand() une valeur aléatoire, (pseudo-aléatoire ne chippotons pas sur les termes :) , hors je voulais utiliser ces fonctions pour créer un fichier bidon qui servira a tester un mini-programme.
Hors je vois en lisant les résultats de ce mini programme que les chiffres générés sont tjrs les mêmes durant l'uptime de la machine.
comment résoudre ça ?
est ce que faire un ajout comme celui là résoudra (…)
Forum Programmation.c compilation avec gcc 4.1.2
Bonjour,
J'ai des fichiers c que je compile avec un gcc 2.95.2 sur mon serveur actuel, jusqu'à présent ça marche bien.
Mais une migration est prévue et la nouvelle version du gcc est la 4.1.2. Lorsque je tente de compiler mes fichiers, j'ai un tas d'erreurs du genre :
fiche.c:306: error: missing terminating " character
fiche.c:307: error: expected expression before '<' token
fiche.c:307: error: stray '\' in program
A ces lignes j'ai ça (l.306) :
fprintf(cgiOut,"(…)
J'ai des fichiers c que je compile avec un gcc 2.95.2 sur mon serveur actuel, jusqu'à présent ça marche bien.
Mais une migration est prévue et la nouvelle version du gcc est la 4.1.2. Lorsque je tente de compiler mes fichiers, j'ai un tas d'erreurs du genre :
fiche.c:306: error: missing terminating " character
fiche.c:307: error: expected expression before '<' token
fiche.c:307: error: stray '\' in program
A ces lignes j'ai ça (l.306) :
fprintf(cgiOut,"(…)
Forum Programmation.c Pointeurs et structures
struct plageMem { void * addrStart; };
alloc.addrStart = allocMemPage(); alloc.addrStart = 0xDEADBEEF;
En gros je voudrait écrire le dword à l'emplacement mémoire pointé par addrStart.
En gros, je voudrais faire l'équivalent de: mov dword ptr[addrStart], 0DEADBEEFh
C'est sans doute une question bête de débutant mais j'ai vraiment aucune idée. Merci d'avance.
Forum Programmation.c creation d'une matrice de sous mot
bonjour,
je veux creer une matrice d'entiers avec les positions de chaque alphabet dans un mot donné.
En effet, ma matrice prend en ligne la taille de l'alphabet du mot et en colonne la taille du mot+1
et on crée un tableau position qui prend en argument le mot et chaque alphabet et renvoi ses positions dans ce mot.
Pour remplir la matrice il faut à chaque fois comparer la position de la lettre avec l'indice de la ligne et (…)
je veux creer une matrice d'entiers avec les positions de chaque alphabet dans un mot donné.
En effet, ma matrice prend en ligne la taille de l'alphabet du mot et en colonne la taille du mot+1
et on crée un tableau position qui prend en argument le mot et chaque alphabet et renvoi ses positions dans ce mot.
Pour remplir la matrice il faut à chaque fois comparer la position de la lettre avec l'indice de la ligne et (…)
Forum Programmation.c linker une lib C++ avec un main C
bonjour, j'ai un développement perso conséquent entièrement en C ANSI. J'ai besoin d'y rajouter une fonction de traitement d'image réalisé à l'aide des api de la lib "Cimg" encapsulées dans un bout de code C++. Donc me voilà confronté à une compil classique avec GCC pour un code tout en C dans laquelle je dois linker un objet issu de ma compil avec G++.
Et tout reprendre en G++, je peux pas me permettre. Alors évidemment la déclaration de ma (…)
Et tout reprendre en G++, je peux pas me permettre. Alors évidemment la déclaration de ma (…)
Forum Programmation.c Probleme de création de driver
salut Je suis en train de développer un driver qui me permet de savoir quand je recoie une interruption sur une carte de type PC104. c'est un PC Embarqué Bus PC104 de chez Arcom mais la n'est pas le probleme. En fait j'ai fais un petit programme qui attend via la fonction select() un evenement ( par ex sur read) . Mais malheureusement le select est non bloquant et signale un evenement de lecture sur mon descripteur (driver)alors qu'il ya (…)