¿Existe un método agnóstico a la plataforma y al sistema de archivos para obtener la ruta completa del directorio desde donde se ejecuta un programa usando C/C++? No confundir con el directorio de trabajo actual. (Por favor, no sugiera bibliotecas a menos que sean estándar como clib o STL).
(Si no hay un método agnóstico a la plataforma/sistema de archivos, las sugerencias que funcionen en Windows y Linux para sistemas de archivos específicos también son bienvenidas).
Si quieres una forma estándar sin bibliotecas: No. El concepto de directorio no está incluido en el estándar.
Si está de acuerdo en que alguna dependencia (portátil) de una librerías casi estándar está bien: Use Boost's filesystem library y pida el initial_path().
IMHO eso'es lo más cercano que puedes conseguir, con buen karma (Boost es un conjunto de bibliotecas de alta calidad bien establecido)
No, no hay una forma estándar. Creo que los estándares de C/C++ ni siquiera consideran la existencia de directorios (u otras organizaciones del sistema de archivos).
En Windows el GetModuleFileName() devolverá la ruta completa al archivo ejecutable del proceso actual cuando el parámetro hModule se establece en NULL. No puedo ayudar con Linux.
También deberías aclarar si quieres el directorio actual o el directorio donde reside la imagen/ejecutable del programa. Tal y como está tu pregunta es un poco ambigua en este punto;