Linux: Symlink/Verknüpfung zu Datei erstellen
-
Hi,
ich suche eine Möglichkeit einen Symlink, das auf eine vorhandene Datei zeigt, zu erstellen. Gut wäre es wenn ein schon existierender Symlink im "Symlinordner" überschrieben wird.
Die Möglichkeit eine Kopie der Datei, mit fstream einlesen und neu erzeugen, zu erstellen kenn ich.... aber die Vorgabe ist eben wenn möglich ein Symlink/Verknüpfung zu erstellen.
Ich suche da schon die ganze Zeit, allerdings konnte ich leider nichts passendes finden.
Wenn jemand Codeschnippsel oder Links hat würde ich mich sehr freuen.
Danke & Gruß

-
man 2 symlink
-
SG1 schrieb:
man 2 symlink
aaah wusste gar nicht, dass in den Manpages auch Programmierhilfen sind...:D

Das einzige was da jetzt noch steht ist....
If newpath exists it will not be overwritten.
Eine andere Möglichkeit die ich jetzt gefunden habe ist einen befehl mit
system("befehle");and die Konsole zu schicken.
Dass man jetzt mitremovedas schon vorhandene löschen kann ist schon mal super.... aber wie lautet der Konsolenbefehl für einen Symlink zu erstellen?
-
Ok ich glaube gefunden
ln -s /Pfad/echte_Datei /Pfad/Symlink
-
Mufasa schrieb:
SG1 schrieb:
man 2 symlink
aaah wusste gar nicht, dass in den Manpages auch Programmierhilfen sind...:D

Das einzige was da jetzt noch steht ist....
If newpath exists it will not be overwritten.
unlink()
Eine andere Möglichkeit die ich jetzt gefunden habe ist einen befehl mit
system("befehle");and die Konsole zu schicken.
*schauder*
-
SG1 schrieb:
*schauder*
Ok ich denke das ist deutlich genug.... ich mach das so wie Du sagst aus dem Programm heraus

hab das jetzt mal probiert
void __fastcall TFormViewer::Button27Click(TObject *Sender) { const char *oldpath = "/altpfad/datei.txt"; const char *newpath = "/neupfad/datei.cfg"; int symlink (const char *oldpath, const char *newpath); }aber der macht irgendwie gar nix.... wird richtig kompiliert und auch beim Klick auf den Button kommt keine Fehlermeldung oder so.... aber trotzdem kein Symlink

Was stimmt denn da noch nicht?
-
ach ja noch was.... hat das vielleicht irgendwie was mit rechten zu tun, die das Programm hat? Weil das Programm mit dem das gemacht werden soll läuft unter normalen User-Rechten...
aber einen Symlink aus der Shell heraus kann ich nur mit Root-Rechten erstellen. Vielleicht hängt das ja damit zusammen....?!?
-
Mufasa schrieb:
ach ja noch was.... hat das vielleicht irgendwie was mit rechten zu tun, die das Programm hat? Weil das Programm mit dem das gemacht werden soll läuft unter normalen User-Rechten...
aber einen Symlink aus der Shell heraus kann ich nur mit Root-Rechten erstellen. Vielleicht hängt das ja damit zusammen....?!?
Du bist witzig. Klar kann dein Programm nicht höhere Rechte erlangen als der, der es ausführt. Sonst wäre ja diee ganze Rechteverwatung für die Katz. Wenn nur root den fraglichen Link erstellen darf, dann muss das Programm auch mit Rootrechten ausgeführt werden.
-
Mufasa schrieb:
Was stimmt denn da noch nicht?
Das du offenbar nicht weißt, wie ein Funktionsaufruf in C++ aussieht. Was du dahin geschrieben hast, ist eine Funktionsdeklaration (btw. wenn du -pedantic-errors setzt, sollte er das auch nicht akzeptieren).