Znajdowanie bieżącej ścieżki pliku wykonywalnego bez / proc / self / exe

Wydaje mi się, że Linux jest łatwy z / proc / self / exe. Ale chciałbym wiedzieć, czy istnieje wygodny sposób na znalezienie katalogu bieżącej aplikacji w C / C ++ z interfejsami międzyplatformowymi. Widziałem kilka projektów mylących się z argv [0], ale nie wydaje się to całkowicie wiarygodne.

Jeśli kiedykolwiek miałbyś obsługiwać, powiedzmy, Mac OS X, który nie ma / proc /, co byś zrobił? Użyj #ifdefs, aby wyizolować kod specyficzny dla platformy (na przykład NSBundle)? Lub spróbuj wydedukować ścieżkę pliku wykonywalnego z argv [0], $ PATH i whatnot, ryzykując znalezienie błędów w przypadkach skrajnych?

questionAnswers(12)

yourAnswerToTheQuestion