Derniers sujets du forum http://picardielibre.org Derniers sujets du forum (C) 2005-2009 PHPBoost fr PHPBoost Quelques conseils pour mener à bien mon projet ! http://picardielibre.org/forum/topic.php?id=141#m689 http://picardielibre.org/forum/topic.php?id=141#m689 J'ai finalement opté pour le framework cakephp <img src="http://picardielibre.org/images/smileys/icon_e_smile.gif" alt=":)" class="smiley" /> Sat, 28 Aug 2010 16:37:49 +0200 Nvidia conserver la resolution http://picardielibre.org/forum/topic.php?id=126#m542 http://picardielibre.org/forum/topic.php?id=126#m542 J'ai eu exactement le même souci que toi que j'avais résolu de la même manière (en tâtonnant) <img src="http://picardielibre.org/images/smileys/clindoeil.gif" alt=";)" class="smiley" /> Thu, 18 Mar 2010 19:40:03 +0100 Code source http://picardielibre.org/forum/topic.php?id=75#m386 http://picardielibre.org/forum/topic.php?id=75#m386 <span class="notice">Discussion originellement initiée par <strong>Zolotaya</strong><br /> <em>Sujet copié/collé dans le cadre de la migration du forum phpbb3 vers phpboost.</em></span><br /> Hello,<br /> <br /> afin de diversifier l'activité sur ce forum, je vous propose un petit jeu : le "que fait ce code"<br /> Tout est dans le titre, on donne code non commenter et les gens doivent expliquer ce qu'il fait. Je vous donnerez la réponse (si personne n'a trouvé) lundi prochain.<br /> <br /> <span class="text_code">Code :</span><div class="code"><code><span style="color: #000000"> <br />#include&nbsp;&lt;stdio.h&gt; <br />#include&nbsp;&lt;assert.h&gt; <br />#include&nbsp;&lt;stdlib.h&gt; <br />#include&nbsp;"pingpong.h" <br /> <br /> <br />int&nbsp;main&nbsp;(&nbsp;int&nbsp;argc,&nbsp;char&nbsp;*argv[]){ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;create_ctx(16384,&nbsp;f_pong,&nbsp;NULL); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;create_ctx(16384,&nbsp;f_ping,&nbsp;NULL); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yield(); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit(EXIT_SUCCESS); <br />} <br /> <br />void&nbsp;f_ping(void&nbsp;*args) <br />{ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(1)&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;{ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("A")&nbsp;; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yield(); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("B")&nbsp;; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yield(); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("C")&nbsp;; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yield(); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br />} <br /> <br />void&nbsp;f_pong(void&nbsp;*args) <br />{ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(1)&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;{ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("1")&nbsp;; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yield(); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("2")&nbsp;; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yield(); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("3")&nbsp;; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yield(); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br />} <br /> <br />int&nbsp;init_ctx(struct&nbsp;ctx_s&nbsp;*ctx,&nbsp;int&nbsp;stack_size,&nbsp;func_t&nbsp;f,&nbsp;void&nbsp;*args) <br />{ <br />&nbsp;&nbsp;&nbsp;&nbsp;ctx-&gt;stack&nbsp;=&nbsp;malloc(stack_size); <br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!ctx-&gt;stack)&nbsp;return&nbsp;0; <br />&nbsp;&nbsp;&nbsp;&nbsp;ctx-&gt;esp&nbsp;=&nbsp;(void&nbsp;*)((unsigned&nbsp;char*)ctx-&gt;stack&nbsp;+&nbsp;stack_size&nbsp;-&nbsp;4&nbsp;&nbsp;&nbsp;&nbsp;); <br />&nbsp;&nbsp;&nbsp;&nbsp;ctx-&gt;ebp&nbsp;=&nbsp;(void&nbsp;*)((unsigned&nbsp;char*)ctx-&gt;stack&nbsp;+&nbsp;stack_size&nbsp;-&nbsp;4&nbsp;&nbsp;&nbsp;&nbsp;); <br />&nbsp;&nbsp;&nbsp;&nbsp;ctx-&gt;f&nbsp;=&nbsp;f; <br />&nbsp;&nbsp;&nbsp;&nbsp;ctx-&gt;args&nbsp;=&nbsp;args; <br />&nbsp;&nbsp;&nbsp;&nbsp;ctx-&gt;etat=INITIAL; <br />&nbsp;&nbsp;&nbsp;&nbsp;ctx-&gt;ctx_magic&nbsp;=&nbsp;CTX_MAGIC; <br />} <br /> <br /> <br />void&nbsp;switch_to_ctx(struct&nbsp;ctx_s&nbsp;*ctx) <br />{ <br />&nbsp;&nbsp;&nbsp;&nbsp;assert(ctx-&gt;ctx_magic==CTX_MAGIC); <br />&nbsp;&nbsp;&nbsp;&nbsp;assert(ctx-&gt;etat!=FINI); <br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(current_ctx) <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;asm("movl&nbsp;%%esp,&nbsp;%0"&nbsp;"\n"&nbsp;"movl&nbsp;%%ebp,&nbsp;%1" <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:"=r"(current_ctx-&gt;esp), <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"=r"(current_ctx-&gt;ebp)&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;); <br />&nbsp;&nbsp;&nbsp;&nbsp;current_ctx=ctx; <br />&nbsp;&nbsp;&nbsp;&nbsp;asm("movl&nbsp;%0,&nbsp;%%esp"&nbsp;"\n"&nbsp;"movl&nbsp;%1,&nbsp;%%ebp" <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:"r"(current_ctx-&gt;esp), <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"r"(current_ctx-&gt;ebp) <br />&nbsp;&nbsp;&nbsp;&nbsp;); <br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(current_ctx-&gt;etat&nbsp;==&nbsp;INITIAL) <br />&nbsp;&nbsp;&nbsp;&nbsp;{ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start_current_ctx(); <br />&nbsp;&nbsp;&nbsp;&nbsp;} <br />}&nbsp; <br /> <br />void&nbsp;start_current_ctx(void) <br />{ <br />&nbsp;&nbsp;&nbsp;&nbsp;current_ctx-&gt;etat=ACTIF; <br />&nbsp;&nbsp;&nbsp;&nbsp;current_ctx-&gt;f(current_ctx-&gt;args);&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;current_ctx-&gt;etat=FINI; <br />&nbsp;&nbsp;&nbsp;&nbsp;free(current_ctx-&gt;stack); <br />&nbsp;&nbsp;&nbsp;&nbsp;exit(EXIT_SUCCESS); <br />} <br /> <br /> <br />int&nbsp;create_ctx(int&nbsp;stack_size,&nbsp;func_t&nbsp;f,&nbsp;void&nbsp;*args) <br />{ <br />&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;ctx_s&nbsp;*new_ctx_s&nbsp;=&nbsp;(struct&nbsp;ctx_s&nbsp;*)malloc(sizeof(struct&nbsp;ctx_s)); <br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!&nbsp;new_ctx_s)&nbsp;return&nbsp;0; <br /> <br />&nbsp;&nbsp;&nbsp;&nbsp;init_ctx(new_ctx_s,&nbsp;stack_size,&nbsp;f,&nbsp;args); <br /> <br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;(!current_ctx)&nbsp;&amp;&amp;&nbsp;(!first_ctx))&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;{ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new_ctx_s-&gt;next&nbsp;=&nbsp;new_ctx_s;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;first_ctx&nbsp;=&nbsp;new_ctx_s; <br />&nbsp;&nbsp;&nbsp;&nbsp;} <br />&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if&nbsp;(current_ctx) <br />&nbsp;&nbsp;&nbsp;&nbsp;{ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new_ctx_s-&gt;next&nbsp;=&nbsp;current_ctx-&gt;next; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;current_ctx-&gt;next&nbsp;=&nbsp;new_ctx_s; <br />&nbsp;&nbsp;&nbsp;&nbsp;} <br />&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;{ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new_ctx_s-&gt;next&nbsp;=&nbsp;first_ctx-&gt;next; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;first_ctx-&gt;next&nbsp;=&nbsp;new_ctx_s; <br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp; <br />} <br /> <br />void&nbsp;yield(void) <br />{ <br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(current_ctx) <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch_to_ctx(current_ctx-&gt;next); <br />&nbsp;&nbsp;&nbsp;&nbsp;else <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch_to_ctx(first_ctx); <br />} <br /> <br /> <br /></span> </code></div><br /> <br /> le point h<br /> <span class="text_code">Code :</span><div class="code"><code><span style="color: #000000"> <br /> <br />#ifndef&nbsp;_PINGPONG_H_ <br />#define&nbsp;_PINGPONG_H_ <br /> <br />#define&nbsp;EXIT_SUCCESS&nbsp;0 <br />#define&nbsp;CTX_MAGIC&nbsp;0xDEADBEEF <br />enum&nbsp;ctx_state_e&nbsp;{FINI,&nbsp;ACTIF,&nbsp;INITIAL}; <br /> <br /> <br />typedef&nbsp;void&nbsp;(func_t)(void&nbsp;*); <br /> <br /> <br />struct&nbsp;ctx_s&nbsp;{ <br />&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;*esp; <br />&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;*ebp; <br />&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;*args; <br />&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;*stack; <br />&nbsp;&nbsp;&nbsp;&nbsp;enum&nbsp;ctx_state_e&nbsp;etat; <br />&nbsp;&nbsp;&nbsp;&nbsp;func_t&nbsp;*f; <br />&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;int&nbsp;ctx_magic; <br />&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;ctx_s&nbsp;*next; <br />}; <br /> <br />struct&nbsp;ctx_s&nbsp;*current_ctx&nbsp;=&nbsp;NULL; <br />struct&nbsp;ctx_s&nbsp;*first_ctx&nbsp;=&nbsp;NULL; <br /> <br />void&nbsp;f_ping(void&nbsp;*arg); <br />void&nbsp;f_pong(void&nbsp;*arg); <br />void&nbsp;switch_to_ctx(struct&nbsp;ctx_s&nbsp;*ctx); <br />void&nbsp;start_current_ctx(void); <br />void&nbsp;yield(void); <br /> <br />int&nbsp;init_ctx(struct&nbsp;ctx_s&nbsp;*ctx,&nbsp;int&nbsp;stack_size,&nbsp;func_t&nbsp;f,&nbsp;void&nbsp;*args); <br />int&nbsp;create_ctx(int&nbsp;stack_size,&nbsp;func_t&nbsp;f,&nbsp;void*&nbsp;args); <br /> <br />#endif <br /> <br /></span> </code></div><br /> <br /> le make file : <br /> <span class="text_code">Code :</span><div class="code"><code><span style="color: #000000"> <br />all:&nbsp;pingpong <br /> <br />pingpong:&nbsp;pingpong.o <br />&nbsp;&nbsp;&nbsp;&nbsp;gcc&nbsp;&nbsp;-o&nbsp;pingpong&nbsp;pingpong.o&nbsp;&nbsp; <br /> <br />pingpong.o:&nbsp;pingpong.c <br />&nbsp;&nbsp;&nbsp;&nbsp;gcc&nbsp;-c&nbsp;pingpong.c <br /> <br /></span> </code></div><br /> <br /> Normalement tout y est!! En cas de problème prévenez moi sur le forum <img src="http://picardielibre.org/images/smileys/clindoeil.gif" alt=";)" class="smiley" /><br /> <br /> Ça serait marrant que tout le monde présente le travail effectué de cette façon, cela permet de faire travailler et réfléchir tout le monde.<br /> <br /> Bon courage à tous, <br /> Zolotaya<br /> <br /> <h3 class="title1">Réponses des membres du forum phpboost provisoire</h3><br /> <br /> <span class="text_blockquote">exeral:</span><div class="blockquote">un pingpong ? <br /> sémarké-dan-le-fichié <img src="http://picardielibre.org/images/smileys/nex.gif" alt=":nex" class="smiley" /><br /> keskejégagné ?</div><br /> <br /> <span class="text_blockquote">zolotaya:</span><div class="blockquote">Le droit d'expliquer comment on y joue <img src="http://picardielibre.org/images/smileys/heureux.gif" alt=":D" class="smiley" /></div><br /> <br /> <span class="text_blockquote">faelar:</span><div class="blockquote"><span class="text_blockquote">Quotation:</span><div class="blockquote">"que fait ce code"</div><br /> asm( ... );<br /> Il fait vomir <img src="http://picardielibre.org/images/smileys/sourire.gif" alt=":)" class="smiley" /></div> Sun, 15 Nov 2009 21:48:09 +0100 Problème de disque dur ... encore et toujours ! http://picardielibre.org/forum/topic.php?id=70#m372 http://picardielibre.org/forum/topic.php?id=70#m372 Bon, je me suis résigné à le renvoyer à Seagate ...<br />J'ose même pas imaginer le prix que va me coûter l'envoi d'un paquet de 600 grammes en Recommandé avec Accusé de Reception.<br />J'passe à la poste (à la caisse plutôt) mardi <img src="http://picardielibre.org/images/smileys/icon_mad.gif" alt=":x" class="smiley" /> Sun, 29 Mar 2009 16:01:16 +0200 Probléme clé usb Linux http://picardielibre.org/forum/topic.php?id=65#m342 http://picardielibre.org/forum/topic.php?id=65#m342 <img src="http://picardielibre.org/images/smileys/icon_arrow.gif" alt=":arrow:" class="smiley" /> <a href="http&#58;//doc&#46;ubuntu-fr&#46;org/live_usb_persistant">http&#58;//doc&#46;ubuntu-fr&#46;org/live_usb_persistant</a><br />j'ai suivi la méthode sur le site ubuntu.<br />Elle m'a bien servi. Fri, 20 Mar 2009 13:56:47 +0100 Les docs, tutorials, cours... http://picardielibre.org/forum/topic.php?id=7#m274 http://picardielibre.org/forum/topic.php?id=7#m274 Mieux encore :<br /><a href="http&#58;//www&#46;z-f&#46;fr/page/comment_debuter">http&#58;//www&#46;z-f&#46;fr/page/comment_debuter</a><br /><br />c'est en plus la communauté officielle française de zend Tue, 03 Mar 2009 13:13:01 +0100 Cherche doc pour application C/GTK+ http://picardielibre.org/forum/topic.php?id=58#m254 http://picardielibre.org/forum/topic.php?id=58#m254 Voila je me suis lancé dans le dev d'une petite appli GTK+ en C.<br />J'ai déjà eu du mal à trouver un lien expliquant la compilation d'un projet correctement (mon makefile est fait main <img src="http://picardielibre.org/images/smileys/icon_e_wink.gif" alt=";)" class="smiley" /> )<br /><br /><strong>I</strong> - J'ai besoin d'effectuer certaines tâches en root, pour l'instant ça prompt dans le terminal et c'est appelé via la fonction system :<br />[code]system(&quot;su -c \&quot;unecomande --arg1 --arg2\&quot;&quot;);[/code]<br /><br />Mais ce que je voudrais c'est un prompt graphique. Comme j'aime pas les bêtises du genre : sudo, gnome, kde etc... je n'utiliserai pas : sudo, gksu, kdesu etc...<br /><br /><strong>II</strong> - Je dois utiliser la libalpm, mais la fonction alpm_initialize(); ne passe pas :<br />[code]aosuke&#46;c&#58;(&#46;text+0x2d)&#58; undefined reference to `alpm_initialize'[/code]<br />je sais que ça peut venir de pleins de choses, mais est-ce que je dois régler ma ligne gcc d'une manière particulière ou pas ? Si oui comment on peut trouver les paramètres à y mettre ? Pour l'instant j'ai :<br />[code]`pkg-config --libs --cflags gtk+-2&#46;0`[/code]<br />ajouté à ma commande.<br /><br /><br />Donc est-ce que quelqu'un peut m'aider ? Me filer de la doc (de préférence en anglais ou en français) ? Merci ! Mon, 02 Mar 2009 20:02:28 +0100 Problème SVN http://picardielibre.org/forum/topic.php?id=56#m252 http://picardielibre.org/forum/topic.php?id=56#m252 c'est parce qu'on doit certainement les inspirer <img src="http://picardielibre.org/images/smileys/icon_lol.gif" alt=":lol:" class="smiley" /> Sat, 28 Feb 2009 16:46:13 +0100 NAS ou PC serveur ? http://picardielibre.org/forum/topic.php?id=6#m62 http://picardielibre.org/forum/topic.php?id=6#m62 C'est vrai que c'est encore ce qu'il y a de mieux <img src="http://picardielibre.org/images/smileys/icon_lol.gif" alt=":lol:" class="smiley" /> Sun, 01 Feb 2009 11:06:46 +0100