Forum Programmation.c Essai de code

Posté par  (site web personnel, Mastodon) .
Étiquettes : aucune
0
4
août
2004
Quelqu'un pourrait-il compiler le programme situé sur http://penso.info/tmp/server.c(...) avec une machine non Linux (un BSD par exemple). Ca utilise glib et gnet (http://www.gnetlibrary.org(...)).

Compiler avec genre :

gcc -I/usr/include/gnet-2.0/ -I/usr/include/glib-2.0/ -I/usr/lib/glib-2.0/include/ -I/usr/lib/gnet-2.0/include/ -Wall -Wunused -ggdb -c server.c -o server.o
gcc -o server -ggdb -lgnet-2.0 server.o


Compiler, lancer le serveur, se connecter avec un telnet localhost 10202, puis faire un goret CTRL SHIFT 5 et me dire si le serveur fait un SIGPIPE, ou non ?

MERCI :)
  • # Raaahh

    Posté par  . Évalué à 2.

    Bon alors, j'avais jamais rien compris à ldconfig, aux gcc -l et tout, mais j'ai reussi à le compiler sous openbsd 3.4, je suis content, j'ai compris plein de trucs (enfin je croit). Bon bref. Quand je le lance, il me met des "something to say" toute les secondes, et ctrl+shift+5 ça ne fait rien, ça ne quitte même pas le serveur...

    Bon je sais pas ce que vaut ce test, car encore une fois, j'y connait rien du tout en compilation C, mais au moins j'ai essayé...
    • [^] # Re: Raaahh

      Posté par  . Évalué à 1.

      Et puis tant que j'y suis, j'ai compilé aussi sur une woody, aprés avoir installé la libgnet-2.0, ca plante pas non plus...
    • [^] # Re: Raaahh

      Posté par  (site web personnel, Mastodon) . Évalué à 2.

      Quand je dis CTRL SHIFT 5 c'est dans le telnet, ça permet d'avoir la console telnet et de taper "quit" par exemple (pas dans la console ou le serveur tourne).
      • [^] # Re: Raaahh

        Posté par  (site web personnel, Mastodon) . Évalué à 2.

        Sinon essayes de faire un telnet, puis dans une autre console "killall -9 telnet" pour faire bourrin, et me dire si le serveur quitte ou pas.
        • [^] # Re: Raaahh

          Posté par  . Évalué à 1.

          Bon le coup du quit apres le ctrl shift 5 ca marche pas, je dois rater un truc, par contre un "killall -9 telnet" ca tue le serveur sur les 2 (bon sous openbsd y'a pas killall, mais c'est pareil)
          • [^] # Re: Raaahh

            Posté par  . Évalué à 1.

            Allé, comme ca m'amuse, voila la fin d'un trace sur la debian :
            nanosleep({1, 0}, {1, 0}) = 0
            write(4, "something to say\n", 17) = 17
            rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
            rt_sigaction(SIGCHLD, NULL, {SIG_DFL}, 8) = 0
            rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
            nanosleep({1, 0}, {1, 0}) = 0
            write(4, "something to say\n", 17) = -1 EPIPE (Broken pipe)
            --- SIGPIPE (Broken pipe) ---

            et d'un ktrace/kdump le BSD :

            20280 server GIO fd 6 wrote 17 bytes
            "something to say
            "
            20280 server RET write 17/0x11
            20280 server CALL gettimeofday(0x24cb31e8,0)
            20280 server RET gettimeofday 0
            20280 server CALL poll(0x3c006400,0x1,0x3e8)
            20280 server RET poll 0
            20280 server CALL gettimeofday(0x24cb31e8,0)
            20280 server RET gettimeofday 0
            20280 server CALL gettimeofday(0x24cb31e8,0)
            20280 server RET gettimeofday 0
            20280 server CALL write(0x6,0x3c00002a,0x11)
            20280 server PSIG SIGPIPE SIG_DFL code 0

            Donc pour repondre a la question initial, je dirait que Oui, ca SIGPIPE
  • # HP testdrive

    Posté par  (site web personnel) . Évalué à 2.

    Tu peux essayer ça: http://www.testdrive.compaq.com/(...)
    Sinon ya la ferme de compilation de SourceForge mais faut avoir un projet chez eux évidemment.

    pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

  • # compilation

    Posté par  . Évalué à 2.

    Pour compiler un programme utilisant la glib, vaut mieux utiliser $(pkg-config --cflags --libs glib-2.0), je suppose que gnet doit aussi pouvoir utiliser pkg-config.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.