Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
un petit bout de code C marrant...
Envoyé par: francoisp


#define _POSIX_C_SOURCE 1

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

/*
* programme le plus stupide du monde ?
*/

int main(int argc, char *argv[])
{
        if (argc != 2)
        {
                // si l'utilisateur ne mets pas de parametre c'est le 9 !
                kill(getpid(), 9);
                return EXIT_SUCCESS;
        }
        // si on a un argument de type numero de signal alors le programme peut se suicider
        if (kill(getpid(), atoi(argv[1])) == -1 )
                perror(NULL);
        return EXIT_SUCCESS;
}

code autosuicide a methode de suicide multiple au choix ...
qui a dit que le dev devait tjrs etre serieux ?


Poste le Saturday 23 June 2007 21:02:20
Répondre     Citer    
Re: un petit bout de code C marrant...
Envoyé par: Fanch

hahaha ! :-))


ça me rappelle les classes d'imprimantes je sais plus où qui disposaient de l'état "on fire"

------- <br />
La meilleure façon de prédire le futur, c'est de l'inventer ~ Alan Kay

Poste le Sunday 24 June 2007 18:36:12
Répondre     Citer    
Re: un petit bout de code C marrant...
Envoyé par: Sve@r

Citation
francoisp
#define _POSIX_C_SOURCE 1

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

/*

programme le plus stupide du monde ?

*/

int main(int argc, char *argv[])
{
if (argc != 2)
{
// si l'utilisateur ne mets pas de
parametre c'est le 9 !
kill(getpid(), 9);
return EXIT_SUCCESS;
}
// si on a un argument de type numero de
signal alors le programme peut se suicider
if (kill(getpid(), atoi(argv[1])) == -1 )
perror(NULL);
return EXIT_SUCCESS;
}

code autosuicide a methode de suicide multiple au
choix ...
qui a dit que le dev devait tjrs etre serieux ?

Dans la série des programmes stupides, il y a le fameux while(1) fork() mais en ce qui concerne ton programme, il ne meurt pas à tous les signaux. Par exemple si on lui passe 19, il ne se suicide pas...

L'homme qui murmurait à l'oreille des pingouins
[fr.lang.free.fr]

Poste le Tuesday 26 June 2007 12:51:27
Répondre     Citer    
Re: un petit bout de code C marrant...
Envoyé par: francoisp

bha oui forcement certains signaux ne sont pas des tueurs....
kill -l te donnera la liste des signaux et donc ceux qui tues ceux qui ont une autre activitee (stop, mise en attente, backgrounding, sleep etc...)

Poste le Wednesday 27 June 2007 08:45:31
Répondre     Citer    
Re: un petit bout de code C marrant...
Envoyé par: abgech

Toujours dans la veine des programmes marrants, on voila un qui a la propriété extraordinaire d'être un source valide à la fois pour le shell /bin/sh, le langage C et FORTRAN !



cat =13 /*/ >/dev/null 2>&1; echo "Hello, world!"; exit
*
* This program works under cc, f77, and /bin/sh.
*
*/; main() {
write(
cat-~-cat
/*,'(
*/
,"Hello, world!"
,
cat); putchar(~-~-~-cat); } /*
,)')
end
*/


Il n'est pas de moi (j'en serais assez fier), mais de Jack Applin.

Poste le Wednesday 27 June 2007 11:15:46
Répondre     Citer    
Re: un petit bout de code C marrant...
Envoyé par: francoisp

le code multi language ? top ! :-))

aller une quine en C que j'ai trouve sur un wiki :
#include<stdio.h>
char*i="\\#include<stdio.h>",n='\n',q='"',*p=
"%s%cchar*i=%c%c%s%c,n='%cn',q='%c',*p=%c%c%s%c,*m=%c%c%s%c%c;%s%c",*m=
"int main(){return!printf(p,i+1,n,q,*i,i,q,*i,q,n,q,p,q,n,q,m,q,n,m,n);}"
;int main(){return!printf(p,i+1,n,q,*i,i,q,*i,q,n,q,p,q,n,q,m,q,n,m,n);}

Poste le Wednesday 27 June 2007 13:07:31
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
un petit bout de code C marrant...
Pour poser vos questions sur les scripts shell, le Perl, le C, etc... Attention : nous ne sommes pas des spécialistes du dev, ce forum est juste pour de petites aides ponctuelles concernant le développement et les outils de développement.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons