pwd.c:
#include <glib.h>

int main(int argc, char **argv) {
 gchar *cwd = g_get_current_dir();

 g_print("%s\n", cwd);

 g_free(cwd);

 return 0;
}

gcc -o pwd pwd.c `pkg-config --cflags --libs glib-2.0`

Works for me.

This should work for converting to absolute path in the event you
detect a relative filename:

gchar *cwd = g_get_current_dir();
gchar *fn = g_build_filename (cwd, argv[i], NULL);
g_free(cwd);
 //use fn here
g_free(fn);

Depending on your platform, you can either just check for a leading /
or [A-Z]:\... or add an else clause to your existence check and
recheck with the full filename.  Just don't forget to free any gchar*
variables you might allocate with get_current_dir or build_filename
;).  Hope that helps.

-Larry

(Sorry Neil, I sent this to you once already, but I'm resending to the
list so people can google it later.)

On Sat, Oct 8, 2011 at 2:54 PM, Neil Munro <neilmu...@gmail.com> wrote:
> Hey guys
>              I am trying to work out a system to pass files to the
> application I am working on, now it can accept absolute paths but it doesn't
> seem to like relative paths can someone have a look at my code and see why
> the G_FILE_TEST_EXISTS check fails? I have tried making the argument and
> converting it to an absolute path by getting the output of g_get_current_dir
> () which I understand to return the current working directory, but it only
> returns the name of my home directory, which is unusual. Can someone shed
> some light on this?
>
> The code I am using is below.
>
> if( argc == 1 ) // If no arguments were passed
> gtk_window_set_focus( GTK_WINDOW( window ), New( NULL, Notebook ) );
> else // Check to see if any files were specified on the cmd line
> {
> gint i;
> for( i = 1; i < argc; i++ )
> {
> g_print( "\n%s\n", argv[ i ] );
> if( g_file_test( argv[ i ], G_FILE_TEST_EXISTS ) )
> {
> g_print( "File exists!\n" );
> gtk_window_set_focus( GTK_WINDOW( window ), open_with( argv[ i ], Notebook )
> );
> }
> }
> if( gtk_notebook_get_n_pages( GTK_NOTEBOOK( Notebook ) ) == 0 )
> gtk_window_set_focus( GTK_WINDOW( window ), New( NULL, Notebook ) );
> }
> _______________________________________________
> gtk-app-devel-list mailing list
> gtk-app-devel-list@gnome.org
> http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
>
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to