From: "DooMWiz" Newsgroups: comp.os.msdos.djgpp Subject: Re: which function can return the directory of the .exe ? Date: Sun, 11 Apr 1999 13:19:44 -0500 Organization: The Internet Connection - ticnet.com (using Airnews.net!) Lines: 63 Message-ID: <21EF89438D8F2E17.6E21802C5B5E8F7A.0AAE947B36D0BDC6@library-proxy.airnews.net> X-Orig-Message-ID: <7eqp80$p50 AT library DOT airnews DOT net> References: <7elgcd$4bv$1 AT wanadoo DOT fr> Abuse-Reports-To: abuse at ticnet.com to report improper postings NNTP-Proxy-Relay: library.airnews.net NNTP-Posting-Time: Sun Apr 11 13:21:53 1999 NNTP-Posting-Host: !b AT ra4F\J/Q3WY& (Encoded at Airnews!) X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.00.2014.211 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2014.211 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com CORNU.Nicolas wrote in message news:7elgcd$4bv$1 AT wanadoo DOT fr... > i need the name of the function which return > the directory of the apllication: .exe AFAIK, there is no function to return the directory of an application. I made such a function for DDE (doom editor), so it has the QuitDDE_Error function call in it--change it to whatever you want... There's also no guarantee it works, even though it runs perfectly in DDE. =) BTW, just pass any full filename + path to this function, and it modifies the full_file_path....can be changed, of course. If you want to pass the filename of the .exe running (user could have changed it from default, etc.), then "#include " and do something like "path = strdup(__crt0_argv[0]);", then pass path to get_path(). =) Well, here it is: char *get_path(char *full_file_path) { char *path, *path_sep[50], **sep=&full_file_path; unsigned int path_sep_num = 0, path_add, char_add, string_char_add = 0; short int runable; path = (char*)malloc(512); if (path==NULL) QuitDDE_Error(LOWMEM, "Can't allocate enough memory for get_path!"); while ((path_sep[path_sep_num] = strsep(sep, "/"))) { path_sep_num++; } for (path_add = 0; path_add < (path_sep_num-1); path_add++) { for (char_add = 0; char_add < strlen(path_sep[path_add]); char_add++) { path[string_char_add] = path_sep[path_add][char_add]; string_char_add++; } path[string_char_add] = '/'; string_char_add++; } path[string_char_add] = '\0'; full_file_path = strdup(path); free(path); return full_file_path; } -- --DooMWiz-- Doom Development Environment @ http://dde.tsx.org