: écriture dans un fichier linux [C] - C - Programmation
Marsh Posté le 27-08-2004 à 13:47:32
si tu sais le nom des fonctions, qu'attends-tu pour y aller. on corrigera ensuite...
p.s. : la lèche ça fonctionne pas (grand gourou, que je ne suis pas d'ailleurs)
Marsh Posté le 27-08-2004 à 13:50:24
Figti a écrit : question de newbie total, mais qui n'occupera que 15 sec d'un grand gourou
|
Un truc comme ça, je pense :
Code :
|
Marsh Posté le 27-08-2004 à 13:51:27
JagStang a écrit : si tu sais le nom des fonctions, qu'attends-tu pour y aller. on corrigera ensuite... |
Si ça marche
Je sais pas si mon truc est correct, mais bon ^^
Marsh Posté le 27-08-2004 à 13:52:45
ça marche oui, mais pas de contrôle sur le retour de fopen, ni fwrite
Marsh Posté le 27-08-2004 à 14:03:36
Tss, la lèche la lèche... c'est bien la réalité, non? qq secondes pour un gars sait et des heures a tatonner pour moi. Comme tu me prêtes des mauvaises intentions, c'était de l'encouragement, tout au plus!
Bref, Merci Yannick. je sais pas si ces histoires de contrôle de retour sont importantes, mais j'imagine que ce que tu m'as indiqué passera.
Marsh Posté le 27-08-2004 à 14:03:47
Meeeuhh ça plantera pas ^^
Allez, au cas où =)
Code :
|
Marsh Posté le 27-08-2004 à 14:04:29
si le fichier n'existe pas ou est verrouillé ça va planter. mais bon c'est toi qui voit
j'appelle pas ça tatonner, mais *apprendre*
Marsh Posté le 27-08-2004 à 14:05:41
yannick_frere a écrit : Meeeuhh ça plantera pas ^^ |
c'est grâce à ce genre de réflexion que l'informatique a la réputation de planter souvent hein
Marsh Posté le 27-08-2004 à 14:06:13
C'est toujours mieux avec les contrôles, oui ! =)
Bah c'est ce que je me suis dit : ça évitera de te faire chercher partout. Maintenant, c'est sûr qu'il faut pratiquer pour que ça rentre
Marsh Posté le 27-08-2004 à 14:09:33
Olaaa ^^ Relax JagStang ! C'était du vite fait pour l'aider, c'est tout ! C'était pas un truc commercial ^^
Marsh Posté le 27-08-2004 à 14:10:42
chacun sa philosophie. moi je dis il faut commencer dès le début à faire des trucs propres.
faites comme vous voulez
Marsh Posté le 27-08-2004 à 14:11:32
JagStang a écrit : chacun sa philosophie. moi je dis il faut commencer dès le début à faire des trucs propres. |
+1
Marsh Posté le 27-08-2004 à 14:13:46
+1 , et dans le calme et la bonne humeur il est même dit qu'on est plus prolifique
Merci pour ces infos
Marsh Posté le 27-08-2004 à 14:14:36
Figti a écrit : +1 , et dans le calme et la bonne humeur il est même dit qu'on est plus prolifique |
Ca dépend, la morosité évite d'être distrait...
Marsh Posté le 27-08-2004 à 18:44:59
vous ecrivez 4 en binaire dans le fichier, vous etes sur qu'il voulait pas plutot que ce soit ecrit en texte ?
Marsh Posté le 27-08-2004 à 20:03:04
Non, on n'est pas sûr
Il va devoir revenir confirmer ou infirmer ..
Enfin de toute façon, je pense qu'il pourra facilement modifier le programme lui-même
Marsh Posté le 27-08-2004 à 20:11:29
moi je suis pas sur qu'un debutant sache ce que c'est que d'ecrire en binaire
Marsh Posté le 27-08-2004 à 20:39:28
Si tu parles du mode d'ouverture (binaire/caractère), je pense que ça n'existe pas sous Linux (je dis ça au cas où, je ne connais pas ton niveau).
Mais si tu veux dire qu'il aurait peut-être fallu écrire char value = '4'; au lieu de int value = 4; alors là je crois qu'il faudra attendre Figti.
Marsh Posté le 27-08-2004 à 20:42:04
hum, euh... bonne question, bonne question
Bah je mets mon PC en vrac, et je vous tiens au courant
Marsh Posté le 27-08-2004 à 21:02:00
ca marche !
C'était effectivement un char qu'il fallait écrire dans mon fichier. Et maintenant j'ai un bel executable que j'ai fait moi-meme (presque )
Merci à tous!
Marsh Posté le 27-08-2004 à 21:21:11
T'as bien changé le sizeof(int) en sizeof(char) aussi hein ? ^^
Sinon tu n'écris pas qu'un char dans ton fichier =)
Sinon bah de rien ^^
Marsh Posté le 27-08-2004 à 21:36:53
euh... je me demandais si y'avait effectivement à bouger ca aussi. Les deux passent en fait : peut-etre que le compilateur le corrige de lui-meme (?)
Marsh Posté le 27-08-2004 à 22:45:11
A mon avis non ... Le char fait 1 octet normalement, et l'entier en fait 4.
Donc si tu remplaces tout les int en char dans le programme mais que tu laisses le sizeof(int), il va en fait envoyer 4 octets vers ton fichier. Le premier de ces octets sera le caractère 4 --> ton fichier le prend et peut-être qu'il est content avec ça (peut-être que tout ce qu'il souhaite, c'est un caractère 4 et qu'il se fiche du reste ?). Mais de toute manière, il reçoit également 3 autres octets qui dont les "valeurs" sont indéterminées. Et il vaut mieux éviter ça --> met plutôt sizeof(char) =)
Marsh Posté le 27-08-2004 à 13:37:41
question de newbie total, mais qui n'occupera que 15 sec d'un grand gourou
Suite à ce thread, j'ai besoin d'écrire un programme en C pour Linux. La seule chose qu'il doit faire c'est d'aller écrire "4" dans /proc/acpi/sleep
Pb : j'ai peur de me gourrer dans les argument de fopen(), fwrite(), fclose(),...
Là j'ai tout bien préparé:
#include <stdio.h>
int main (void)
{
return 0;
}
Maintenant qu'est ce que je mets entre les {} ?
Message édité par Figti le 27-08-2004 à 13:38:23