Forum Programmation.c wait(), mais pas sur un fils

Posté par  .
Étiquettes : aucune
0
1
mar.
2007
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...

Posté par  .
Étiquettes : aucune
0
23
fév.
2007
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

codecs.c:351: erreur: (…)

Forum Programmation.c Lecture de fichier binaire

Posté par  (site web personnel) .
Étiquettes : aucune
0
2
fév.
2007
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:

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

Posté par  .
Étiquettes : aucune
0
31
jan.
2007
Bonjour,
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

Posté par  (site web personnel) .
Étiquettes : aucune
0
30
jan.
2007
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.

Forum Programmation.c probleme boucle infinie + sous programme

Posté par  .
Étiquettes : aucune
0
30
jan.
2007
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
(…)

Forum Programmation.c portabilité

Posté par  .
Étiquettes : aucune
0
29
jan.
2007
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

Forum Programmation.c Taille d'une video

Posté par  (site web personnel) .
Étiquettes : aucune
0
24
jan.
2007
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 (…)

Forum Programmation.c comportement 'aléatoire'

Posté par  .
Étiquettes : aucune
0
20
jan.
2007
Bonjour,

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

Posté par  (site web personnel) .
Étiquettes : aucune
0
17
jan.
2007
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 :
void
copymkdir(char const * dir, char (…)

Forum Programmation.c Editer un fichier binaire à l'aide de templates

Posté par  (site web personnel) .
Étiquettes : aucune
0
17
jan.
2007
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 (…)

Forum Programmation.c Programmation multiprocesseur

Posté par  .
Étiquettes : aucune
0
16
jan.
2007
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 !

Forum Programmation.c Killer un processus sans fermer la socket ?

Posté par  .
Étiquettes : aucune
0
12
jan.
2007
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

Posté par  (site web personnel) .
Étiquettes :
0
8
jan.
2007
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 (…)

Forum Programmation.c problème de struct et d'alignement

Posté par  .
Étiquettes : aucune
0
4
jan.
2007
Dans ce petit programme, j'ai une erreur étrange (pour moi):


#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

Posté par  .
Étiquettes : aucune
0
4
jan.
2007
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 (…)

Forum Programmation.c Question pour C gourou !

Posté par  .
Étiquettes : aucune
0
31
déc.
2006
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 (…)

Forum Programmation.c Problème avec la compilation d'un programme GTK

Posté par  .
Étiquettes : aucune
0
30
déc.
2006
Bonjour,

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

Posté par  .
Étiquettes : aucune
0
28
déc.
2006
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

Posté par  .
Étiquettes : aucune
0
27
déc.
2006
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 (…)

Forum Programmation.c compilation avec gcc 4.1.2

Posté par  .
Étiquettes : aucune
0
27
déc.
2006
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,"(…)

Forum Programmation.c Pointeurs et structures

Posté par  .
Étiquettes : aucune
0
21
déc.
2006
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

Posté par  .
Étiquettes : aucune
0
21
déc.
2006
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 (…)

Forum Programmation.c linker une lib C++ avec un main C

Posté par  .
Étiquettes : aucune
0
21
déc.
2006
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 (…)

Forum Programmation.c Probleme de création de driver

Posté par  .
Étiquettes : aucune
0
20
déc.
2006
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 (…)