Öffnen einer Datei unter Unix mit C ++

8

Ich versuche eine Datei in C ++ zu öffnen und der Server, auf dem das Programm läuft, basiert auf tux.

%Vor%

Gibt es eine Möglichkeit, eine Datei in C ++ zu öffnen, wenn der Dateiname im zweiten Format ist?

    
Jaelebi 31.05.2009, 17:39
quelle

3 Antworten

12

Die Erweiterung ~jal wird von der Shell (bash / csh / was auch immer) ausgeführt, nicht vom System selbst. Ihr Programm versucht also, in den Ordner ~jal/ , nicht /home/jal/ zu schauen.

Ich bin kein C-Kodierer, aber getpwent() könnte das sein, was Sie brauchen.

    
grawity 31.05.2009, 17:43
quelle
9

Sie könnten die Zeichenfolge durchsuchen und ~user durch das entsprechende Verzeichnis ersetzen.

Die POSIX Funktion wordexp macht das, und ein paar andere Dinge

  • Variablensubstitution, wie Sie $HOME
  • verwenden können
  • optionale Befehlsersetzung, wie $(echo foo) (kann deaktiviert werden)
  • arithmetische Erweiterung, wie $((3+4))
  • Worttrennung, wie das Teilen von ~/a ~/b in zwei Wörter
  • Platzhaltererweiterung, wie *.cpp
  • und zitieren, wie "~/a ~/b" bleibt das
Johannes Schaub - litb 31.05.2009 18:13
quelle
3

Hier ist ein bereites Stück Code, das diese Aufgabe ausführt:

  

Wie erweitere ich '~' in einem Dateinamen wie die Shell?

    
Alex Ott 31.05.2009 18:20
quelle

Tags und Links