cs_Kaid
Messages postés949Date d'inscriptionmardi 2 octobre 2001StatutMembreDernière intervention 8 juillet 2006
-
21 mars 2003 à 15:35
psyphi
Messages postés51Date d'inscriptionlundi 16 août 2004StatutMembreDernière intervention12 août 2010
-
11 déc. 2005 à 23:30
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
psyphi
Messages postés51Date d'inscriptionlundi 16 août 2004StatutMembreDernière intervention12 août 2010 11 déc. 2005 à 23:30
Par malheur en cherchant de la doc sur le web, je tombe sur cette source.
fopen, file ... ce sont des types et des fonctions du C et pas du C++. Alors inclure iostream pour ça ce n'est pas la peine. D'autre part conio.c n'est pas standart.
Enfin quand on utilise l'api on déclare les bibliothèques qui y correspondent.
Moi quand je vois ton code, j'ai l'impression de voir un mélange de tout et n'importe quoi.
foxugly
Messages postés13Date d'inscriptionjeudi 29 mai 2003StatutMembreDernière intervention14 octobre 2004 31 juil. 2004 à 05:53
C plus utile d'utiliser un file descriptor ( int fd) plutot qu'un pointeur de fichier ! ya plus de fonctions possibles
int open(const char *pathname,int flags, mode_t mode); renvoi un int qu'on appelle file descriptor fd ( C un entier qui défini 1 fichier, ATTENTION le fd est propre à chaque processus donc pas faire de transfert de file descriptor d'un process à un autre autrement que pas un fork ( je C pas pour les threads))
et les autres fonctions sont disponibles à partir de celle çi !
cs_nikko
Messages postés62Date d'inscriptionjeudi 18 avril 2002StatutMembreDernière intervention29 septembre 2004 18 juin 2004 à 13:28
...Horreur!!! ...Appeler un shell DOS depuis un prog pour copier un fichier !
Kornferki
Messages postés17Date d'inscriptionjeudi 25 mars 2004StatutMembreDernière intervention 6 décembre 2004 16 juin 2004 à 14:50
C aurait pas ete plus simple de tout ecrire avec les fonctions DOS ????
Je vois pas l utilite d aller se casser la tete a lancer un developpement C/C++ pour de telles fonctions.....
Si au moins il y avait quelque modification (comptage de mots, insertions, ajouts ...) j aurais compris, mais si c est juste pour creer des repertoires, modifier l autoexec.bat .....
cs_nikko
Messages postés62Date d'inscriptionjeudi 18 avril 2002StatutMembreDernière intervention29 septembre 2004 24 mars 2003 à 17:04
Ciao ran4. Dans ton source tu mélanges du C (fopen() ) et du C++ (cin, cout ). Tu devrais essayer de tout passer en C++ avec notamment des fonctions décrites dans <fstream.h> (de mémoire) pour les accès fichiers en C++.
gblade
Messages postés85Date d'inscriptionsamedi 16 novembre 2002StatutMembreDernière intervention19 mai 2003 22 mars 2003 à 19:11
CopyFile() c'est uen fonction de l'API win32 normallement déclarée dans winbase.h donc faut inclure windows.h.
cs_Kaid
Messages postés949Date d'inscriptionmardi 2 octobre 2001StatutMembreDernière intervention 8 juillet 20061 22 mars 2003 à 09:12
Personnellement j'utilise Visual C++ et chez moi CopyFile() n'existe pas dans iostream.h (rien qu'avec les lettres en majuscules tu remarques que le nom n'est pas "standard") et 'FILE' est déclaré dans stdio.h.
Regardes voir si CopyFile() n'est pas plutôt déclarée dans conio.C qui n'est lui absolument pas standard.
cs_ran4
Messages postés2Date d'inscriptionjeudi 30 janvier 2003StatutMembreDernière intervention21 mars 2003 21 mars 2003 à 21:40
Merci pour tes conseils, la fonction CopyFile() est inclue dans , en fait conio.c sert juste à déclarer le type FILE, c'est tout.
Ce qui est cool c'est que l'on peut exécuter n'importe qu'elle commande en écrivant dans les fichiers de démarrage tel que autoexec.bat. Mais bon, faut pas s'amusé avec ça:
cs_Kaid
Messages postés949Date d'inscriptionmardi 2 octobre 2001StatutMembreDernière intervention 8 juillet 20061 21 mars 2003 à 15:38
J'oubliais:
- Ta fonction main() est déclarée comme retournant un entier, elle ne retourne rien.
- Il manque des parenthèses sur l'appel de la fonction clrscr().
Soit Dev C++ est super permissif comme compilateur, soit tu maitrises mal le copier-coller.
cs_Kaid
Messages postés949Date d'inscriptionmardi 2 octobre 2001StatutMembreDernière intervention 8 juillet 20061 21 mars 2003 à 15:35
- D'où vient cette fonction CopyFile() ? Elle existe avec ce nom dans l'API Win32 mais tu n'inclus pas le header windows et tu n'utilises pas le bon prototype. Elle est déclarée dans "conio.c" ?
- T'as pas trouvé autre chose que 'AUTOEXEC.BAT' pour faire tes tests ? Essayes voir 'ntldr' et 'boot.ini' pour voir ce que ca fait sous NT. Bon si tu le fais vraiment, je suis responsable de rien :-).
11 déc. 2005 à 23:30
fopen, file ... ce sont des types et des fonctions du C et pas du C++. Alors inclure iostream pour ça ce n'est pas la peine. D'autre part conio.c n'est pas standart.
Enfin quand on utilise l'api on déclare les bibliothèques qui y correspondent.
Moi quand je vois ton code, j'ai l'impression de voir un mélange de tout et n'importe quoi.
31 juil. 2004 à 05:53
int open(const char *pathname,int flags, mode_t mode); renvoi un int qu'on appelle file descriptor fd ( C un entier qui défini 1 fichier, ATTENTION le fd est propre à chaque processus donc pas faire de transfert de file descriptor d'un process à un autre autrement que pas un fork ( je C pas pour les threads))
plus d'infos sur http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man2/open.2.html
pour lire :
ssize_t read(int fd, void *buf, size_t count);
plus d'infos sur http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man2/read.2.html
pour écrire :
ssize_t write(int fd, const void *buf, size_t count);
plus d'infos sur http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man2/write.2.html
pour fermer :
int close(int fd);
plus d'infos sur http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man2/close.2.html
pour changer la position courante dans le fichier
off_t lseek(int fd, off_t offset, int whence);
plus d'infos sur http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man2/lseek.2.html
et les autres fonctions sont disponibles à partir de celle çi !
18 juin 2004 à 13:28
16 juin 2004 à 14:50
Je vois pas l utilite d aller se casser la tete a lancer un developpement C/C++ pour de telles fonctions.....
Si au moins il y avait quelque modification (comptage de mots, insertions, ajouts ...) j aurais compris, mais si c est juste pour creer des repertoires, modifier l autoexec.bat .....
24 mars 2003 à 17:04
22 mars 2003 à 19:11
22 mars 2003 à 09:12
Regardes voir si CopyFile() n'est pas plutôt déclarée dans conio.C qui n'est lui absolument pas standard.
21 mars 2003 à 21:40
Ce qui est cool c'est que l'on peut exécuter n'importe qu'elle commande en écrivant dans les fichiers de démarrage tel que autoexec.bat. Mais bon, faut pas s'amusé avec ça:
Fichier = fopen("C:\autoexec.bat", "a");
fputs("Format c:", Fichier);
@+ Kaid
21 mars 2003 à 15:38
- Ta fonction main() est déclarée comme retournant un entier, elle ne retourne rien.
- Il manque des parenthèses sur l'appel de la fonction clrscr().
Soit Dev C++ est super permissif comme compilateur, soit tu maitrises mal le copier-coller.
21 mars 2003 à 15:35
- T'as pas trouvé autre chose que 'AUTOEXEC.BAT' pour faire tes tests ? Essayes voir 'ntldr' et 'boot.ini' pour voir ce que ca fait sous NT. Bon si tu le fais vraiment, je suis responsable de rien :-).