Je voudrais savoir s'il existe une fonction pour supprimer un fichier ?
Ou dois executer la commande "rm" depuis la fonction execute(buf_command) ?
Idem pour le déplacement de fichier
Je voudrais savoir s'il existe une fonction pour supprimer un fichier ?
Ou dois executer la commande "rm" depuis la fonction execute(buf_command) ?
Idem pour le déplacement de fichier
Envoyé par kendras
Unlink
Hello,
Oui pour enlever,Envoyé par kendras
int remove(const char *filename); <dans stdio.h>
Renvoie 0 si succès. Attention à ce que le fichier ne soit pas ouvert.
Pour changer de place au fichier, tu n'as pas de fonction toute faite.
Au choix,
=> system("commande de deplacement de ton system <args>");
=> Une fonction spécifique de ton système
=> mieux, tu l'implémentes toi même via les fonctions disponibles de <stdio.h>
fopen(), fclose(), et remove() peuvent suffire. Un cp est possible aussi.
A+
Pas portable.Envoyé par gnto
remove().
Oui mais la question était de remplacer "rm" et la commande "rm" est une commande unix/linux donc pour la portabilité ce n'est pas une question de priorité.Envoyé par Emmanuel Delahaye
Est-ce mal de développer des applications non-portables ?
Oui, surtout quand une alternative portable existe.Envoyé par gnto
(Gorétisation de niveau 4)
Envoyé par Echelle de Goret
dans mon cas, la non portabilité n'est pas un problème
Déjà si l'application tourne, ce sera un miracle
Haha je vais écrire à tous les malheureux qui écrivent des applications non-portables
Unlink conformité SVID, POSIX, X/OPEN, BSD 4.3Envoyé par Emmanuel Delahaye
Quelle niveau de standardisation ? POSIX n'est pas un standard?
Dans le cadre du langage C, non.Envoyé par gnto
Envoyé par Echelle du Goret
En même temps, s'il était question de portabilité dans mon cas, j'aurais opté pour du .net et non du C ...
Envoyé par Emmanuel Delahaye
Portabilité => La portabilité désigne pour un programme informatique sa capacité à fonctionner plus ou moins facilement dans différents environnements d'exécution (qui correspondent généralement à un système d'exploitation (Windows, GNU/Linux, ...)).
Or POSIX => C'est un acronyme de Portable Operating System Interface, dont le X exprime l'héritage UNIX de l'API.Windows NT est conforme à POSIX.1.
Je ne vois pas de probleme de portabilité ? Biensur ce n'est pas de l'ansi C
Hello,
et pourtant, "Quand programmeur C ilè bon, li programme ila écrit lè portable".Envoyé par kendras
Et plutôt que .NET, pour la portabilité, il y a aussi Java, qui a plus d'expérience. Je connais encore pas mal de systèmes Unix sur lesquels le CLR n'a pas été porté. Du C bien écrit est largement plus portable que du code supervisé par .NET.
A+
Hello,
De l'ISO C , c'est de la norme internationale qu'il s'agit, même si ANSI (comité des ricains) est à l'origine de la norme.Envoyé par gnto
A+
man gccEnvoyé par Wikipédia
Dans tes rêves seulement... Regarde select(), par exemple...Envoyé par gnto
D'autre part, la norme qui définit le langage C n'est pas liée à POSIX. C'est même plutôt le contraire...
http://emmanuel-delahaye.developpez.com/notes.htm#posix
Tiens jette un oeuil la dessusEnvoyé par Emmanuel Delahaye
http://www.microsoft.com/technet/arc....mspx?mfr=true
Select() est du POSIX1.g ou sinon du BSD 4.4
man select
Peut-etre que je me trompe mais
POSIX1 est sortie en 1990 1003.1-1990 (POSIX.1)
POSIX1.g est sortie en 2001 1003.1-2001 (POSIX.1.g)
Le select() de Windows n'est pas compatible avec les autres, car les sockets de Windows sont des HANDLEs et non des descripteurs.
Par conséquent, sous Windows, tu ne peux pas faire un select() sur entrée standard+socket().
De plus, les sockets ne sont pas dans la liste des objets que peut attendre [Msg]WaitForXxxxxObject[s](), donc on se retrouve forcé d'alterner entre select() (ou WSAWaitForMultipleEvents()) et [Msg]WaitForXxxxxObject[s]()...
Et puis, je ne sais pas comment faire une application qui repose directement sur le sous-système POSIX au lieu du sous-système Win32...
Sans compter que ce document date de Windows NT 3.51...On parle encore de sous-système POSIX dans un livre sur Win2000, mais le fameux psxss.exe, je ne le vois jamais tourner... Je ne sais même pas si cygwin s'en sert...Envoyé par MSDN
Edit: Je viens de faire une recherche sous mon WinXP pro, en incluant les fichiers système et cachés : Plus aucune trace de psxss.exe...
EditEx: Je viens de trouver un truc intéressant:
http://msdn2.microsoft.com/en-us/library/y23kc048.aspx
Hello,
Envoyé par gnto
La phrase "Elle reprend quelques idées de C++" n'est pas idéalement placée. On pourrait comprendre qu'il s'agit de ANSI C en lieu et place de C99. Il serait souhaitable de la mettre plutôt en fin du second paragraphe, ou avant la phrase "ANSI C est une évol..." .
ANSI C 89 = ISO C 90, donc, justement, maintenant, qu'il s'agit de norme internationale, parler d'ISO C est plus convenable, d'autant plus que c'est désormais l'ISO qui effectue les modifs du langage C, à l'image de la dernière norme C99. Autre raison, ISO, 3 lettres, c'est plus court à écrire que ANSI qui en fait 4 .
A+
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager