Re: Using external data-files in programs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Erlend Hamberg wrote:

> If I make a small SDL/OpenGL program using external data files for 
> textures and music, zip it and send it to my friends those running
> Windows can just unzip it and double-click the executable to run it. But
> those using Linux with KDE, or Gnome for that sake, has to open a
> terminal-emulator and 'cd' to the dir containing the executable file and 
> then run it by typing './program' and pressing enter. If they
> double-click it in konqueror the program can't find the files in
> 'data/'.

Apparently konqueror starts all programs in the user's home directory,
not in the directory where the program is. This is generally good,
because normally you don't stuff your data into a program directory (you
don't want to end up with the same bloody mess like on Windows).

> > Another option is to start a wrapper script instead of the real application
> > executable and have the wrapper script switch the workign directory so that
> > paths to resources can be relative.

> How can I find out where the executable is located then?

You could try looking at argv[0]. Although this method is generally
considered unportable, unreliable and whatever, it seems to work here
with Konqueror (didn't try with Nautilus).

#include <stdio.h>

int main(int argc, char* argv[])
{
  char cmd[1024];
  sprintf(cmd,"xterm -e 'echo \"argv[0]: %s\"; read'",argv[0]);
  system(cmd);
}

Regards...
		Michael

___________________________________________________
.
Account management:  https://mail.kde.org/mailman/listinfo/kde.
Archives: http://lists.kde.org/.
More info: http://www.kde.org/faq.html.

[Index of Archives]     [Trinity (TDE) Desktop Users]     [Fedora KDE]     [Fedora Desktop]     [Linux Kernel]     [Gimp]     [GIMP for Windows]     [Gnome]     [Yosemite Hiking]
  Powered by Linux