Bonsoir,
Je dois réaliser un programme en C qui reprend dans les grandes lignes la commande cp du terminal (sans ses options, juste la commande de base) en utilisant les appels système. Donc les fonction telles que open, write, read, fstat...
Dans les faits, lire un fichier avec read et écrire dans un autre avec write en y allant caractère par caractère pour effectuer le copier-coller, je sais le faire. Mon problème se pose sur la création du nouveau fichier. L'exécution doit avoir "la même forme" que cp donc comme suit:
Sauf que voilà, je n'arrive pas à créer mon fichier dans le répertoire de destination. Si il n'y avait pas de répertoire spécifique pour la destination ça aurait été simple, je serais passé par open avec les modes correspondants (O_CREAT et O_WRONLY) ou par creat. Comment je dois m'y prendre pour faire ceci sachant que la concaténation de mon argv[2] et argv[1] n'est pas possible car argv[1] peut ne pas avoir seulement le nom du fichier à copier mais également son chemin d'accès (absolu ou relatif) ? Et d'ailleurs, je ne suis pas sûr que j'ai le droit d'utiliser la bibliothèque string.h dans mon programme pour faire une concaténation../cp /.../fichierSource /.../repertoireDest/
Auriez-vous une solution à cela ? Comment créer le fichier dont le nom sera identique au fichier source (selon la condition que l'on se trouve dans un répertoire autre) mais à un emplacement bien spécifique ?
Merci de votre aide.
Partager