en C on a la fonction readlink pour voir le contenu d'un lien symbolique, ainsi j'ai un code qui fait ceci:
#include <unistd.h>
#include <stdio.h>
int main(int argc, char * argv [] ) {
char buffer[256];
int result;
if ( argc == 1 ) return -1;
result = readlink(argv[1],buffer,sizeof(buffer));
if ( result == -1 ) {
printf("Erreur de lecture\n");
return -2;
}
buffer[result]='\0';
printf("%s\n",buffer);
return 0;
}
mais existe-t'il un "writelink" afin de modifier le chemin contenu dans
les datas du lien symbolique sans avoir à le détruire puis le recréer.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Laurent Wacrenier
Unknown écrit:
en C on a la fonction readlink pour voir le contenu d'un lien symbolique, ainsi j'ai un code qui fait ceci: #include <unistd.h> #include <stdio.h> int main(int argc, char * argv [] ) { char buffer[256];
Pour la taille maximale d'un lien :
pathconf(argv[1], _PC_SYMLINK_MAX)
int result; if ( argc == 1 ) return -1; result = readlink(argv[1],buffer,sizeof(buffer)); if ( result == -1 ) { printf("Erreur de lecturen");
Pour afficher correctement le message d'erreur perror("readlink");
return -2; } buffer[result]=' ';
Attention, buffer[result] peut être en ceça de la taille de buffer.
printf("%sn",buffer); return 0; } mais existe-t'il un "writelink" afin de modifier le chemin contenu dans les datas du lien symbolique sans avoir à le détruire puis le recréer.
man symlink
Unknown <Unknown@devnull.null> écrit:
en C on a la fonction readlink pour voir le contenu d'un lien symbolique, ainsi j'ai un code qui fait ceci:
#include <unistd.h>
#include <stdio.h>
int main(int argc, char * argv [] ) {
char buffer[256];
Pour la taille maximale d'un lien :
pathconf(argv[1], _PC_SYMLINK_MAX)
int result;
if ( argc == 1 ) return -1;
result = readlink(argv[1],buffer,sizeof(buffer));
if ( result == -1 ) {
printf("Erreur de lecturen");
Pour afficher correctement le message d'erreur
perror("readlink");
return -2;
}
buffer[result]=' ';
Attention, buffer[result] peut être en ceça de la taille de buffer.
printf("%sn",buffer);
return 0;
}
mais existe-t'il un "writelink" afin de modifier le chemin contenu dans
les datas du lien symbolique sans avoir à le détruire puis le recréer.
en C on a la fonction readlink pour voir le contenu d'un lien symbolique, ainsi j'ai un code qui fait ceci: #include <unistd.h> #include <stdio.h> int main(int argc, char * argv [] ) { char buffer[256];
Pour la taille maximale d'un lien :
pathconf(argv[1], _PC_SYMLINK_MAX)
int result; if ( argc == 1 ) return -1; result = readlink(argv[1],buffer,sizeof(buffer)); if ( result == -1 ) { printf("Erreur de lecturen");
Pour afficher correctement le message d'erreur perror("readlink");
return -2; } buffer[result]=' ';
Attention, buffer[result] peut être en ceça de la taille de buffer.
printf("%sn",buffer); return 0; } mais existe-t'il un "writelink" afin de modifier le chemin contenu dans les datas du lien symbolique sans avoir à le détruire puis le recréer.