Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#29101 Le 11/03/2010, à 22:47

helly

Re : Topic des couche-tard (30)

Plus de répondant ? pfff quand ça commençait a devenir interressant, des scoops allaient tomber !


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#29102 Le 11/03/2010, à 22:48

Pylades

Re : Topic des couche-tard (30)

helly, à 21:59 a écrit :

Moi jveux bien flooder mais y'a pas de répondant sad alors jvai bientot me coucher ...


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#29103 Le 11/03/2010, à 22:50

kouskous

Re : Topic des couche-tard (30)

neutral


#!/usr/bin/killall
« « J'aime kouskous » — kouskous. »  — kouskous.

Hors ligne

#29104 Le 11/03/2010, à 22:54

grim7reaper

Re : Topic des couche-tard (30)

@Pylade : suite et fin wink

Bon déjà, posons le problème. La structure sigaction se présente plus ou moins sous cette forme

void(*) (int)                       sa_handler
sigset_t                            sa_mask
int                                 sa_flags
void(*) (int, siginfo_t *, void *)  sa_sigaction

Bon ça je suppose que tu le savais.

Comme tu peux le voir tu peux définir 2 handler (sa_handler et sa_sigaction) mais comme en général c'est codé en interne sous la forme d'une union il ne faut en définir qu'une.
Par défaut c'est sa_handler qui est utilisé. Hors son prototype est "void fct(int)" où int est le code du signal et on vois que ta fonction int_ ne respecte pas le prototype (donc le compilateur te jette).

Ensuite, tu peux utiliser la variante à paramètre "sa_sigaction" en positionnant le flag qui va bien. Mais là encore c'est cuit hmm car tu ne choisi pas les paramètres. Cette fonction reçoit le code du signal(int), des info sur l'origine du signal(siginfo_t) et le contexte d'exécution (la pile et tout le toutim avec le void).

Donc bon pour les paramètres c'est mort. Mais bon en même temps tu tentes d'utiliser la gestion des signaux pour faire un truc pour lesquelles ils sont pas vraiment prévu à la base. Donc soit tu passes toutes tes variables à manipuler en global (hum caca tongue) soit tu oublies. Apparemment c'est pas safe de modifier autre choses que des variables globales dans un handler.

À la limite, je peux te proposer un compromis : tu pose une variable globale que tu met à 1 et tu boucle dessus. Dans ton handler tu la passe à zéro et ça casse ta boucle et donc tu fait ton traitement en sortie.

Ça donnerai un truc du genre (sûrment des erreurs, donc à vérifier)

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <signal.h>

void int_(int);

int out = 1;

int main(void)
{
    char boolean = 0;
    int i;
    int j;
    int tsqrt;
    int A = 5;
    int p = 3;
    struct sigaction intact;
    int* list = malloc(sizeof(int) * 0x2000000);

    intact.sa_handler = &int_;
    sigaction(SIGINT,&intact,NULL);
    
    list[0]=2;
    list[1]=3;
    list[2]=5;

    while(out)
    {
        /* tests only integers which are congruent to 1 or 5 modulo 6 */
        if(boolean != 0)
        {
            A += 4;
            boolean = 0;
        }
        else                                                                                                                                                                        
        {                                                                                                                                                                           
            A += 2;                                                                                                                                                                 
            boolean = 1;                                                                                                                                                            
        }                                                                                                                                                                           

        i=1;
        tsqrt=sqrt(A);

        while(1)
        {
            if(list[i] > tsqrt)
            {
                list[p++]=A;
                break;
            }

            if(A % list[i]==0)
            {
                break;
            }
            else
            {
                i++;
            }
        }
    }

    for(j = 0; j < i; j++)
    {
        printf("%d ",list[i]);
    }

    free(list);

    return EXIT_SUCCESS;
}

void int_(int signum)
{
    out = 0;
}

Hors ligne

#29105 Le 11/03/2010, à 22:55

helly

Re : Topic des couche-tard (30)

Pylade a écrit :
helly, à 21:59 a écrit :

Moi jveux bien flooder mais y'a pas de répondant sad alors jvai bientot me coucher ...

bhé oui !! je persiste !

HDP
HDP
[...]
HDP
HDP
HDP
HDP

Dernière modification par helly (Le 11/03/2010, à 23:19)


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#29106 Le 11/03/2010, à 22:57

compte supprimé

Re : Topic des couche-tard (30)

Bon, j'me casse parce ça commence à me faire sérieusement chier. mad
A plus tard, peut être...

#29107 Le 11/03/2010, à 22:57

helly

Re : Topic des couche-tard (30)

Qu'est ce qui te va pas ? sad


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#29108 Le 11/03/2010, à 23:01

juju_theseaman

Re : Topic des couche-tard (30)

Yap les gens !
Vous allez plus trop me voir bientôt, je pars lundi bosser sur un Thonier pour 1 mois et demi

Hors ligne

#29109 Le 11/03/2010, à 23:01

El Pensador

Re : Topic des couche-tard (30)

Chuck Norris !
(Plop tongue )


« À quoi je sers ? Sans doute à rien du tout... »
A Tunisian Girl

Hors ligne

#29110 Le 11/03/2010, à 23:03

kouskous

Re : Topic des couche-tard (30)

helly a écrit :
Pylade a écrit :
helly, à 21:59 a écrit :

Moi jveux bien flooder mais y'a pas de répondant sad alors jvai bientot me coucher ...

bhé oui !! je persiste !

HDP
(...)
HDP

Me suis déjà fait bannir pour presque moins que ça yikes ! Faut pas chatouiller les modo's yikes !


#!/usr/bin/killall
« « J'aime kouskous » — kouskous. »  — kouskous.

Hors ligne

#29111 Le 11/03/2010, à 23:09

Pylades

Re : Topic des couche-tard (30)

grim7reaper a écrit :

Ouais mais la ça va pas être possible, du moins pour ce que j'en sais (explication en cours de rédaction, j'essaye de faire un truc bien clair et concis).

Glip.

grim7reaper a écrit :
Pylade a écrit :

2. C'est très moche mon allocation de mémoire, non ?

Ha pars le coup de l'hexa, nan ça va. C'est quoi qui te choque ?

Et bien je commence direct à pomper 128 Mio de mémoire, c'est un peu violant, et je ne prends aucune précaution pour savoir quand elle va prendre un "buffer overflow". Enfin bref, je ne sais pas coder, quoi.

grim7reaper a écrit :
Pylade a écrit :

Quand je fais mon printf, ça double bien la mémoire bouffée ?

Heu, nan je vois pas en quoi printf double la mémoire, (du moins à chaud comme ça sans trop examiner le truc). Qu'est ce qui te fait penser ça ?

En fait, je crois prendre à la fois de la mémoire pour mon tableau, et pour le descripteur de fichier, c'est moche, je pense. Y aurait-il moyen de libérer progressivement mon tableau ?

grim7reaper a écrit :

Hum, je n'ai pas vraiment compris. Tu entends quoi par "passer en void" ?

En fait je trouve tous mes EXIT_SUCCESS un peu lourds et inutile. Là, j'ai int main(void);. Ça se fait d'avoir un void main(void); ?

grim7reaper a écrit :

Sinon, 2-3 remarques sur le code :
    - n'utilises pas "bool" comme identificateur. C'est un nom réservé (Cf. C99, veut mieux éviter même en C89 pour toute éventuelles évolutions du code).
    - le return de la fonction _int est inutile vu qu'il est précédé d'un exit.
    - c'est quoi l'intérêt de mettre la taille du malloc en hexa !?

- je sais, mais je code mal et pour ce que ce code va évoluer ! ^^ Mais je sais, c'est mal, je ne ferais plus.
    - je sais, d'où ma question pour le void.
    - c'est pour voir rapidement que 16*2^20 * 8 = 128*2^20.

grim7reaper a écrit :

Ha, et au cas où tu connaîtrais pas ton

int* list = malloc(sizeof(int) * 0x2000000);

peut être remplacé par

int* list = malloc(sizeof *list * 0x2000000);

comme ça si tu change le type de "list" tu n'a qu'une modif à faire à la place de 2.

Merci !


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#29112 Le 11/03/2010, à 23:09

PPdM

Re : Topic des couche-tard (30)

juju_theseaman a écrit :

Yap les gens !
Vous allez plus trop me voir bientôt, je pars lundi bosser sur un Thonier pour 1 mois et demi

Pas le thon rouge j'espère!
Je milite contre les bateaux usines qui sont en train de vider la Méditerranée du thon rouge.

Quand j'étais ado, les thon ramené par les thoniers  au port de Marseille pesaient au minimum 300kg aujourd'hui ils sont content quand  ils en ramènent de 100kgs


La critique est facile, mais l'art est difficile !
L'humanité étant ce qu'elle est, la liberté ne sera jamais un acquit, mais toujours un droit à défendre !
Pour résoudre un problème commence par poser les bonnes questions, la bonne solution en découlera

Hors ligne

#29113 Le 11/03/2010, à 23:16

Pylades

Re : Topic des couche-tard (30)

kouskous a écrit :
helly a écrit :
Pylade a écrit :

bhé oui !! je persiste !

HDP
(...)
HDP

Me suis déjà fait bannir pour presque moins que ça yikes ! Faut pas chatouiller les modo's yikes !

Chuis pas modo moi !


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#29114 Le 11/03/2010, à 23:19

grim7reaper

Re : Topic des couche-tard (30)

Pylade a écrit :
grim7reaper a écrit :

Ouais mais la ça va pas être possible, du moins pour ce que j'en sais (explication en cours de rédaction, j'essaye de faire un truc bien clair et concis).

Glip.

C'est fait, Cf bdp précédent. Je sais pas si tu as vu.

Pylade a écrit :

Et bien je commence direct à pomper 128 Mio de mémoire, c'est un peu violant, et je ne prends aucune précaution pour savoir quand elle va prendre un "buffer overflow". Enfin bref, je ne sais pas coder, quoi.

Effectivement c'est un peu violent, en plus tu ne teste pas le retour du malloc et ça c'est vraiment mauvais.

Pylade a écrit :

En fait, je crois prendre à la fois de la mémoire pour mon tableau, et pour le descripteur de fichier, c'est moche, je pense. Y aurait-il moyen de libérer progressivement mon tableau ?

Ton tableau tu l'alloue une fois c'est tout, il est pas recopié après. Quel descripteur ? Tu parles du stdin qui est implicite au printf. Il ne bouffe rien car il est ouvert dès le début de l'exécution du programme et fermé à la fin.
Sinon pour la libération progressive nan c'est pas possible (encore que peut-être à coup de realloc et encore c'est pas sûr. Pis bon, tes performances risque d'en prendre un coup si ça se passe pas idéalement).

Pylade a écrit :

En fait je trouve tous mes EXIT_SUCCESS un peu lourds et inutile. Là, j'ai int main(void);. Ça se fait d'avoir un void main(void); ?

Non ,ce n'est pas standard. Les seul prototypes standards et portables sont 'int main(void)" et "int main(int argc, char** argv). Le int de retour est obligatoire car tu dois informer le système de ton état final.

Dernière modification par grim7reaper (Le 11/03/2010, à 23:20)

Hors ligne

#29115 Le 11/03/2010, à 23:20

juju_theseaman

Re : Topic des couche-tard (30)

pierguiard a écrit :
juju_theseaman a écrit :

Yap les gens !
Vous allez plus trop me voir bientôt, je pars lundi bosser sur un Thonier pour 1 mois et demi

Pas le thon rouge j'espère!
Je milite contre les bateaux usines qui sont en train de vider la Méditerranée du thon rouge.

Quand j'étais ado, les thon ramené par les thoniers  au port de Marseille pesaient au minimum 300kg aujourd'hui ils sont content quand  ils en ramènent de 100kgs

Nan, de l'albacore, sur la côte Atlantique de l'Afrique.

Hors ligne

#29116 Le 11/03/2010, à 23:21

helly

Re : Topic des couche-tard (30)

@kouskous :j'ai modifié kasou mais quand même je pense pas qu'ils bannissent pour ça yikes

@juju:ca va être comme dans les pubs petits navire ? avec le marin super beau, la mer transparente, le bateau nickel et tout et tout ?

Dernière modification par helly (Le 11/03/2010, à 23:22)


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#29117 Le 11/03/2010, à 23:21

edge_one

Re : Topic des couche-tard (30)

pierguiard a écrit :
juju_theseaman a écrit :

Yap les gens !
Vous allez plus trop me voir bientôt, je pars lundi bosser sur un Thonier pour 1 mois et demi

Pas le thon rouge j'espère!
Je milite contre les bateaux usines qui sont en train de vider la Méditerranée du thon rouge.

Quand j'étais ado, les thon ramené par les thoniers  au port de Marseille pesaient au minimum 300kg aujourd'hui ils sont content quand  ils en ramènent de 100kgs

+1

moi je suis pour l'aquaculture.

m'enfin juju il fait juste son taff.

#29118 Le 11/03/2010, à 23:23

Plonk

Re : Topic des couche-tard (30)

Hop c'est l'heure d'aller faire du vélo !

#29119 Le 11/03/2010, à 23:23

geenux

Re : Topic des couche-tard (30)

mdp m'abord, na !

Hors ligne

#29120 Le 11/03/2010, à 23:25

银河系

Re : Topic des couche-tard (30)

helly a écrit :

@kouskous :j'ai modifié kasou mais quand même je pense pas qu'ils bannissent pour ça yikes

Bien sûr que non wink

Hors ligne

#29121 Le 11/03/2010, à 23:26

Slystone

Re : Topic des couche-tard (30)

pierguiard a écrit :
juju_theseaman a écrit :

Yap les gens !
Vous allez plus trop me voir bientôt, je pars lundi bosser sur un Thonier pour 1 mois et demi

Pas le thon rouge j'espère!
Je milite contre les bateaux usines qui sont en train de vider la Méditerranée du thon rouge.

Quand j'étais ado, les thon ramené par les thoniers  au port de Marseille pesaient au minimum 300kg aujourd'hui ils sont content quand  ils en ramènent de 100kgs

Je suis assez d'accord, mais tant qu'il n'y a pas de réglementation internationale, on ira pas bien loin.
Un cousin à moi est ingénieur depuis quelques mois dans un chantier naval au Vietnam, le dernier monstre sur lequel il travaille est un senneur de 1000 tonnes (300 tonnes en réfrigérés et 700 tonnes dans une autre cuve). De son propre aveu ce type de bateau est une gigantesque connerie...


«Rigid, the skeleton of habit alone upholds the human frame.» - Virginia Woolf.

Hors ligne

#29122 Le 11/03/2010, à 23:30

Pylades

Re : Topic des couche-tard (30)

@grim7reaper :
OK, merci pour ton code.
Cool, qu'une variable globale, et pas bien méchante en plus.
Par contre, là je peux me reprendre un SIGINT dans la tronche. Mais c'est pas grave. tongue

Pour la mémoire, en fait ce que veux dire c'est c'est que non seulement mon prog pompe 128 Mio, mais qu'en plus le shell va devoir se servir lui aussi pour prendre en compte ma sortie, non ?

int main(int argc, char** argv, char** env) n'est donc pas standard ? yikes


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#29123 Le 11/03/2010, à 23:32

helly

Re : Topic des couche-tard (30)

Allé les gens c'est l'heure du dodo !! vous bossez VOUS demain !! (niark niark)

Dernière modification par helly (Le 11/03/2010, à 23:32)


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#29124 Le 11/03/2010, à 23:33

compte supprimé

Re : Topic des couche-tard (30)

Plop ! Quelqu'un pour me résumer les 500 dernières pages ?

#29125 Le 11/03/2010, à 23:33

pipou24

Re : Topic des couche-tard (30)

Ben, pourquoi il travaille dessus, alors ?

Dernière modification par pipou24 (Le 12/03/2010, à 00:50)


Non geek et fier de l'être. ㋡

Hors ligne