Zenity scheint auf Debian Betriebssystemen Standard zu sein.
Hab ein bischen mit Peterfido's Code gespielt:
Code:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main() {
FILE *f;
char Dateiname[1024] = "";
int c;
/* Zenity für File-Dialog benutzen */
freopen("/dev/null", "w", stderr); // Warnungen von zenity ignorieren
if(!(f = popen("zenity --file-selection", "r"))){
strcpy(Dateiname, "Falsch");
exit(1);
}
freopen("/dev/tty", "w", stderr);
fgets(Dateiname, sizeof(Dateiname), f);
fclose(f);
if(strlen(Dateiname) < 2){ //Kein Dateiname übergeben / Abbrechen geklickt, etc
strcpy(Dateiname, "Falsch");
}
/* Inhalt der Datei ausgeben */
printf("Dateiname: %s", Dateiname);
Dateiname[strlen(Dateiname)-1] = '\0'; // '\n'-Stringende entfernen
f = fopen(Dateiname, "r");
if (f) {
while ((c = getc(f)) != EOF)
putchar(c);
fclose(f);
}
}
Lesezeichen