Pas mal ton code. Quelques remarques (encore :-)) :
- Tu peux écrire la plupart des caractères de manière "lisible", pas besoin de mettre directement leur code ASCII : pour espace par exemple, met if (caractereActuel == ' ')
- Pour l'histoire du fgetc() et de l'int : dans le man de fgetc, tu vois que son type de retour est 'int'. Quand tu lis un peu plus loin, il est dit que cette fonction renvoie soit "un unsigned char transformé en int", soit "EOF". C'est parce qu'un caractère peut prendre la valeur 0 à 255 (ou -128 à 127 pour un non signé, mais c'est pareil), et que là tu n'as pas la "place" de caser une valeur pour EOF. Donc, fgetc() renvoit un int, qui vaudra soit -1 (pour EOF, mais t'es pas censé le savoir ; oublie le, mais en pratique ça dépanne des fois) soit de 0 à 255 (pour un caractère normal). Dans ton code, tu cast directement vers un char, donc tu ne "verras" pas la différence entre le caractère 0xff (ou 255)(ou -1) et EOF. Bon, tu vas me dire, au final, tu t'en fous, tu ne gère pas ce caractère. Mais pour une prochaine fois où tu liras des flux "binaires", fais-y attention. Dans ton code, il suffirait à priori de changer la déclaration de caractereActuel en int.
- Enfin, dans ta gestion de fin de fichier, je bouclerais simplement sur un while (caractereActuel != EOF) et je fermerait le fichier après. Bon, ça c'est vraiment pour le style, genre j'ai envie de raccourcir le code ; ton code reste tout à fait fonctionnel (juste que l'alternative à ton test sur EOF qui reteste sur != de EOF, ça fait un peu "moche").
Les seules fois où le réseau se met à "ralentir", c'est quand je sature mon upload. Tant qu'il n'est pas saturé, je peux télécharger 4 trucs en parallèles tout en surfant sans problème. Et depuis longtemps, sous Debian.
Peut-être voulais-tu donc parler de téléchargement en P2P, sale pirate ?
Alors, en ce qui concerne la "qualité" de ton code (chacun a sa propre vision de ce qui est "bien", donc prend la suite avec des pincettes) :
- atoi() aurait pu servir, si tu avais des nombres qui tiennent sur plus d'un caractère (en fait, ce ne seraient plus des "chiffres"), mais comme il travaille sur des chaînes C, il aurait fallu lui fournir soit des chaînes terminées par \0. Bref, dans ton cas, c'est cool ça marche bien avec l'astuce c-'0'.
- Pour les boucles, avec l'expérience, j'ai appris à toujours commencer par 0 et à utiliser quasi uniquement des strictement inférieur. Pour moi c'est beaucoup plus lisible.
- fgetc() est un peu "bancal" dans le signalement d'EOF, et une utilisation correcte voudrait que tu récupères d'abord un int, le teste voir si ce n'est pas un EOF, et _après_ tu cast vers un _unsigned_ char, qui est la manière la plus "naturelle" de bosser sur des caractères ASCII (ton -38 pour le retour à la ligne je trouve ça moche par rapport à un '\n' ... d'ailleurs pourquoi -38 ? ça a l'air de correspondre à rien de très logique ...) et te permettera surtout de différencier un caractère 0xff dans ton fichier par rapport à la vraie fin du fichier.
- D'un autre coté, si tu sais que tu auras _exactement_ 6 caractères sur une ligne (5 chiffres + un LF), t'as pas besoin de faire de test du tout, juste un getc() dans le vide.
- Mais bon, on voit bien que t'essayes de te soucier un peu des cas d'erreurs possibles, mais il reste encore plein de "failles" si tu voulais faire un truc robuste. D'un côté, ce n'est peut-être pas ton objectif ...
Bon, moi je te crois, mais bon, c'est vrai que c'est pas très malin de demander comment installer windows sur un forum de linuxiens ... tu trouveras des informations plus pertinentes sur un forum windows ?
Sinon, pour ton problème, pourrais-tu être plus spécifique, vu que tu parles de CD mais que ton ordi n'a pas l'air d'avoir de lecteur ...
Et je n'ai aucun conseil particulier à te donner pour effacer linux, vu que windows se démerde très bien pour le faire tout seul dès l'installation.
Remarque à peine hors sujet, la plupart des trackpads même "monotouch" doivent pouvoir faire le défilement à deux doigts : avec synaptic sur mon powerbook, il utilise un "hack" qui consiste à utiliser la détection de "trop de doigts" qu'on beaucoup de trackpad. Ainsi, quand ce flag est activé et que le doigt bouge, c'est pour un défilement. Je ne sais pas si j'ai été clair ...
Il faudrait aussi que tu actives le driver ATA spécifique à ton matos. C'est quoi comme carte ?
Et sinon, t'as l'air d'utiliser l'ancienne stack IDE, il faudrait plutôt que tu regardes du coté de libata aujourd'hui, dumoins si le driver pour ton chipset est dedans.
Je sais que des gens en relation avec FDN bossent en ce moment à une "NoBox", basé sur une eeebox : https://lists.fdn.fr/wws/info/nobox
Je n'ai pas beaucoup d'autres infos, mais ça pourrait t'intéresser.
Pour la puissance, je pense que l'eeebox suffira largement pour tes besoins.
Bill Gates utilise beaucoup ce genre d'"argumentation" quand on critique Microsoft, en rappelant qu'avec la fondation Bill & Melinda Gates ils aident plein de petits nenfants malheureux dans le monde.
Le pire, c'est qu'ils vont encore plus loin en profitant de l'occasion pour aller faire coucou aux dirigeants des pays aidés afin de leur glisser un petit mot sur les logiciels qu'ils devraient utiliser dans leur pays ...
Bon, au final, c'est un projet de recherche qui n'est pas fait pour être "propre", mais tu t'évertues à dire à ceux qui te répondent que ta démarche est bien fondée, et que tu pensais trouver des bêtes des macros ici, et que t'es déçu. Et tu n'acceptes pas les critiques ?
Pour l'attaque, OK, excuse moi, ce n'était pas très malin, mais au départ j'ai réagi sur ce thread après avoir vu ton premier message au ton condescendant et le fait que ça vienne (entre autres) de chez Orange, et je me suis dis que j'allais rentrer dedans ...
Pour les projets Orange, tant mieux que le votre marche bien. Je trollais peut-être un peu stérilement, mais quand je pense par exemple au suivi conso sur iPhone qui attend dans les bacs depuis 1 an et demi, je ne peut m'empêcher de pouffer de rire (là, c'est pas à cause des devs, mais de l'orga, du marketing, ...)
Une anecdote : on pense surtout à protéger la DMZ des flux entrants en filtrant un max. Mais en général, on filtre très peu les flux sortants, vu que tout vient de "l'intérieur" (tout ça en statefull bien sûr).
Mais ça peut être utile des fois : un serveur s'étant fait compromettre (mdp ssh temporaire non changé par un admin ...) voulait se connecter sur IRC pour aller discuter avec ses amis du botnet, mais comme les flux sortant étaient aussi filtrés pour ne laisser passer que le ssh et le http(s), ça n'a pas eu d'impact. Même si ça fait une belle frayeur au début.
Le coup des templates, c'est sympa quand tu codes un compilo, mais quand tu le fais à la main, t'as intérêt à être super balèze pour arriver à faire un truc correct. Les indications que tu donnes montre bien que la plateforme n'est pas encore tout à fait au point ...
Pour le fait à l'arrache, OK, tu fais un proto, mais t'admets que tu le fais à l'arrache.
Et pour Orange, le projet dont je parle c'est celui que je connais personnellement, mais je connais quelques personnes qui ont bossé chez eux pour d'autres projet (je viens de Rennes, où FT R&D dicte la politique des boites de prestas) et c'est du même genre.
Pour les points techniques, je donne des avis qui sont certes des jugements personnels appuyés par des "impressions" que j'ai, mais tu voudrais que je dise quoi ? Quand tu donnes ton avis, c'est un jugement que tu as par rapport aux expériences que tu as eu et en comparant à ce que tu connais.
Je ne savais pas que c'était un projet de recherche, je comprend mieux pourquoi c'est un peu pas très propre. Mais aux vues des réponses que tu as eu, tu dois bien voir que cette approche ne paraît pas être ce qu'il y a de plus idéal.
Désolé de ne pas avoir pu apporter de réponses à ton problème, et bonne nuit aussi.
- Une archi bancale : prendre le même source pour générer plusieurs autres un peu différents, qu'on va assembler ensemble après .... j'ai jamais vu ça et je trouve que c'est _très_ bancal.
- Contraintes étranges : pas de define en ligne de commande, pas de static, bref on peut toucher à rien ; c'est pour un concours de contraintes ?
- Fait à l'arrache : vu comme t'es obligé de bidouiller ("Je fais une hypothèse sur le code produit, et je m'en sers pour écrire le code d'entrée."), et le fait même que tu bidouilles, c'est pas le signe d'un projet bien fait. Bon ok, ce genre de trucs crades peuvent se trouver partout ... Sinon, pour le mot "pragmatique", je suis peut-être un peu trop extrême mais aujourd'hui tellement de gens ont déformé sa signification initiale que maintenant dès que quelqu'un l'utilise je le classe dans la catégorie "gros con".
- Pour Orange : bah au hasard ELSE, où ils ont réinventé la roue, mais comme ça prend du temps, bah il ont fait ça très vite et à l'arrache. Et en plus, le projet n'a mené à rien, il a été abandonné après 1 an.
Sinon, oui, je cherche effectivement à troller un peu ...
Bah d'un côté, t'as un projet basé sur une architecture bancale, avec des contraintes que je trouve très étranges, avec des gens prenant des décisions "pragmatiques" (c-à-d le projet est fait à l'arrache), et en plus tout ça dirigé par Orange (enfin, FT) bien connu pour ses projets efficaces et bien faits.
Bref, tu peux peut-être dire que tu es un incompris, mais là franchement si il y a quelqu'un qui arrive à trouver une solution à ce merdier (je juge peut-être un peu vite, mais vu tes explications ...(d'ailleurs j'ai pas tout compris ...)) je lui souhaite bon courage !
man bash:
RESTRICTED SHELL
It behaves identically to bash with the exception that the following are
disallowed or not performed:
redirecting output using the >, >|, <>, >&, &>, and >> redirec tion operators
Je suppose que ça doit correspondre à une conformance POSIX plus "stricte".
je vois pas bien ce qui force Dell à verser de l'argent à Canonical
Le fait que Ubuntu soit une marque protégée, et que pour la distribuer, ils ont bien dû avoir un arrangement quelconque ?
[^] # Re: Code bon :)
Posté par benoar . En réponse au message Mettre un fichier dans une matrice. Évalué à 2.
- Tu peux écrire la plupart des caractères de manière "lisible", pas besoin de mettre directement leur code ASCII : pour espace par exemple, met
if (caractereActuel == ' ')
- Pour l'histoire du fgetc() et de l'int : dans le man de fgetc, tu vois que son type de retour est 'int'. Quand tu lis un peu plus loin, il est dit que cette fonction renvoie soit "un unsigned char transformé en int", soit "EOF". C'est parce qu'un caractère peut prendre la valeur 0 à 255 (ou -128 à 127 pour un non signé, mais c'est pareil), et que là tu n'as pas la "place" de caser une valeur pour EOF. Donc, fgetc() renvoit un int, qui vaudra soit -1 (pour EOF, mais t'es pas censé le savoir ; oublie le, mais en pratique ça dépanne des fois) soit de 0 à 255 (pour un caractère normal). Dans ton code, tu cast directement vers un char, donc tu ne "verras" pas la différence entre le caractère 0xff (ou 255)(ou -1) et EOF. Bon, tu vas me dire, au final, tu t'en fous, tu ne gère pas ce caractère. Mais pour une prochaine fois où tu liras des flux "binaires", fais-y attention. Dans ton code, il suffirait à priori de changer la déclaration de caractereActuel en int.
- Enfin, dans ta gestion de fin de fichier, je bouclerais simplement sur un
while (caractereActuel != EOF)
et je fermerait le fichier après. Bon, ça c'est vraiment pour le style, genre j'ai envie de raccourcir le code ; ton code reste tout à fait fonctionnel (juste que l'alternative à ton test sur EOF qui reteste sur != de EOF, ça fait un peu "moche").[^] # Re: Aucun problème...
Posté par benoar . En réponse au journal Mon Linux n'est pas partageur. Évalué à 4.
Peut-être voulais-tu donc parler de téléchargement en P2P, sale pirate ?
[^] # Re: Ancienne opinion
Posté par benoar . En réponse au journal pourquoi Linux n'est pas (encore) prêt pour le bureau. Évalué à 3.
[^] # Re: Code bon :)
Posté par benoar . En réponse au message Mettre un fichier dans une matrice. Évalué à 2.
- atoi() aurait pu servir, si tu avais des nombres qui tiennent sur plus d'un caractère (en fait, ce ne seraient plus des "chiffres"), mais comme il travaille sur des chaînes C, il aurait fallu lui fournir soit des chaînes terminées par \0. Bref, dans ton cas, c'est cool ça marche bien avec l'astuce c-'0'.
- Pour les boucles, avec l'expérience, j'ai appris à toujours commencer par 0 et à utiliser quasi uniquement des strictement inférieur. Pour moi c'est beaucoup plus lisible.
- fgetc() est un peu "bancal" dans le signalement d'EOF, et une utilisation correcte voudrait que tu récupères d'abord un int, le teste voir si ce n'est pas un EOF, et _après_ tu cast vers un _unsigned_ char, qui est la manière la plus "naturelle" de bosser sur des caractères ASCII (ton -38 pour le retour à la ligne je trouve ça moche par rapport à un '\n' ... d'ailleurs pourquoi -38 ? ça a l'air de correspondre à rien de très logique ...) et te permettera surtout de différencier un caractère 0xff dans ton fichier par rapport à la vraie fin du fichier.
- D'un autre coté, si tu sais que tu auras _exactement_ 6 caractères sur une ligne (5 chiffres + un LF), t'as pas besoin de faire de test du tout, juste un getc() dans le vide.
- Mais bon, on voit bien que t'essayes de te soucier un peu des cas d'erreurs possibles, mais il reste encore plein de "failles" si tu voulais faire un truc robuste. D'un côté, ce n'est peut-être pas ton objectif ...
[^] # Re: Autre solution ?
Posté par benoar . En réponse au message remplacer la machinBox par un pc perso ?. Évalué à 2.
[^] # Re: cf fichier de conf ( environ 4000 lignes )
Posté par benoar . En réponse au message Configuration SQUID en mode tranparent. Évalué à 3.
# Je ne pense pas que ce soit un fake ...
Posté par benoar . En réponse au message Supprimer linux. Évalué à 4.
Sinon, pour ton problème, pourrais-tu être plus spécifique, vu que tu parles de CD mais que ton ordi n'a pas l'air d'avoir de lecteur ...
Et je n'ai aucun conseil particulier à te donner pour effacer linux, vu que windows se démerde très bien pour le faire tout seul dès l'installation.
[^] # Re: ...
Posté par benoar . En réponse au journal pourquoi Linux n'est pas (encore) prêt pour le bureau. Évalué à 10.
Quel anglicisme de merde, quand même ...
# ...
Posté par benoar . En réponse au journal pourquoi Linux n'est pas (encore) prêt pour le bureau. Évalué à 7.
[^] # Re: Le shell est une interface !
Posté par benoar . En réponse au journal Quel est votre vision de la ligne de commande ?. Évalué à 2.
[^] # Re: ma config
Posté par benoar . En réponse au message Debian sur CF avec busybox demarrage tres long. Évalué à 2.
Et sinon, t'as l'air d'utiliser l'ancienne stack IDE, il faudrait plutôt que tu regardes du coté de libata aujourd'hui, dumoins si le driver pour ton chipset est dedans.
[^] # Re: Pas d'initrd
Posté par benoar . En réponse au message Debian sur CF avec busybox demarrage tres long. Évalué à 1.
# NoBox
Posté par benoar . En réponse au message remplacer la machinBox par un pc perso ?. Évalué à 5.
Je n'ai pas beaucoup d'autres infos, mais ça pourrait t'intéresser.
Pour la puissance, je pense que l'eeebox suffira largement pour tes besoins.
[^] # Re: netlink
Posté par benoar . En réponse au message Communication kernel <=> Userland. Évalué à 2.
[^] # Re: J'ai envie de dire « Dommage »...
Posté par benoar . En réponse au journal Intel se fait taper sur les doigts. Évalué à 4.
Le pire, c'est qu'ils vont encore plus loin en profitant de l'occasion pour aller faire coucou aux dirigeants des pays aidés afin de leur glisser un petit mot sur les logiciels qu'ils devraient utiliser dans leur pays ...
[^] # Re: pas compris l'interet
Posté par benoar . En réponse au message Macro pour définir identifiant uniques. Évalué à 2.
Pour l'attaque, OK, excuse moi, ce n'était pas très malin, mais au départ j'ai réagi sur ce thread après avoir vu ton premier message au ton condescendant et le fait que ça vienne (entre autres) de chez Orange, et je me suis dis que j'allais rentrer dedans ...
Pour les projets Orange, tant mieux que le votre marche bien. Je trollais peut-être un peu stérilement, mais quand je pense par exemple au suivi conso sur iPhone qui attend dans les bacs depuis 1 an et demi, je ne peut m'empêcher de pouffer de rire (là, c'est pas à cause des devs, mais de l'orga, du marketing, ...)
[^] # Re: Parfaitement inutile...
Posté par benoar . En réponse à la dépêche The Uptime Project à la française. Évalué à 4.
Mais ça peut être utile des fois : un serveur s'étant fait compromettre (mdp ssh temporaire non changé par un admin ...) voulait se connecter sur IRC pour aller discuter avec ses amis du botnet, mais comme les flux sortant étaient aussi filtrés pour ne laisser passer que le ssh et le http(s), ça n'a pas eu d'impact. Même si ça fait une belle frayeur au début.
[^] # Re: pas compris l'interet
Posté par benoar . En réponse au message Macro pour définir identifiant uniques. Évalué à 2.
Pour le fait à l'arrache, OK, tu fais un proto, mais t'admets que tu le fais à l'arrache.
Et pour Orange, le projet dont je parle c'est celui que je connais personnellement, mais je connais quelques personnes qui ont bossé chez eux pour d'autres projet (je viens de Rennes, où FT R&D dicte la politique des boites de prestas) et c'est du même genre.
Pour les points techniques, je donne des avis qui sont certes des jugements personnels appuyés par des "impressions" que j'ai, mais tu voudrais que je dise quoi ? Quand tu donnes ton avis, c'est un jugement que tu as par rapport aux expériences que tu as eu et en comparant à ce que tu connais.
Je ne savais pas que c'était un projet de recherche, je comprend mieux pourquoi c'est un peu pas très propre. Mais aux vues des réponses que tu as eu, tu dois bien voir que cette approche ne paraît pas être ce qu'il y a de plus idéal.
Désolé de ne pas avoir pu apporter de réponses à ton problème, et bonne nuit aussi.
[^] # Re: pas compris l'interet
Posté par benoar . En réponse au message Macro pour définir identifiant uniques. Évalué à 4.
- Contraintes étranges : pas de define en ligne de commande, pas de static, bref on peut toucher à rien ; c'est pour un concours de contraintes ?
- Fait à l'arrache : vu comme t'es obligé de bidouiller ("Je fais une hypothèse sur le code produit, et je m'en sers pour écrire le code d'entrée."), et le fait même que tu bidouilles, c'est pas le signe d'un projet bien fait. Bon ok, ce genre de trucs crades peuvent se trouver partout ... Sinon, pour le mot "pragmatique", je suis peut-être un peu trop extrême mais aujourd'hui tellement de gens ont déformé sa signification initiale que maintenant dès que quelqu'un l'utilise je le classe dans la catégorie "gros con".
- Pour Orange : bah au hasard ELSE, où ils ont réinventé la roue, mais comme ça prend du temps, bah il ont fait ça très vite et à l'arrache. Et en plus, le projet n'a mené à rien, il a été abandonné après 1 an.
Sinon, oui, je cherche effectivement à troller un peu ...
[^] # Re: pas compris l'interet
Posté par benoar . En réponse au message Macro pour définir identifiant uniques. Évalué à 3.
Bref, tu peux peut-être dire que tu es un incompris, mais là franchement si il y a quelqu'un qui arrive à trouver une solution à ce merdier (je juge peut-être un peu vite, mais vu tes explications ...(d'ailleurs j'ai pas tout compris ...)) je lui souhaite bon courage !
PS: je fais du C depuis presque 10 ans.
[^] # Re: xinput
Posté par benoar . En réponse au journal Bépo et azerty en même temps !. Évalué à 2.
[^] # Re: Différence de shell
Posté par benoar . En réponse au message comportement bizarre. Évalué à 2.
RESTRICTED SHELL
It behaves identically to bash with the exception that the following are
disallowed or not performed:
redirecting output using the >, >|, <>, >&, &>, and >> redirec tion operators
Je suppose que ça doit correspondre à une conformance POSIX plus "stricte".
[^] # Re: Conclusion
Posté par benoar . En réponse au journal Retour d'expérience: Toshiba Satellite P300. Évalué à 3.
Le fait que Ubuntu soit une marque protégée, et que pour la distribuer, ils ont bien dû avoir un arrangement quelconque ?
[^] # Re: option -D
Posté par benoar . En réponse au message Macro pour définir identifiant uniques. Évalué à 2.
[^] # Re: 557 députés ce coup-ci...
Posté par benoar . En réponse au journal HADOPI... c'est voté. Évalué à 4.