Be concise.

Be useful.

All contributions dictatorially edited by webmasters to match personal tastes.

Please do not paste any copyright violating resource.

Please try to avoid dependencies to third-party libraries and frameworks.

Implementation edit is for fixing errors and enhancing with metadata.

Instead of changing the code of the snippet, consider creating another C implementation.

Other implementations
import "os"
import "path/filepath"
programPath := os.Args[0]
absolutePath, err := filepath.Abs(programPath)
if err != nil {
	return err
dir := filepath.Dir(absolutePath)
import std.path;
void main(string[] args) {
    string dir = args[0].dirName;
dir := extractfilepath(paramstr(0));
$dir = realpath(dirname(__FILE__));
dir = __dir__
import System.Environment (getExecutablePath)
import System.FilePath.Windows
dir <- takeDirectory `fmap` getExecutablePath
import System.Environment (getExecutablePath)
import System.FilePath.Windows
import System.IO.Unsafe (unsafePerformIO)
dir = unsafePerformIO (takeDirectory `fmap` getExecutablePath)
import os
dir = os.path.dirname(os.path.abspath(__file__))
const path = require('path');
const dir = path.resolve();
use English qw($EXECUTABLE_NAME);
use Path::Tiny qw(path);
my $dir = path($EXECUTABLE_NAME)->parent;
dir = AppDomain.CurrentDomain.BaseDirectory;
dir = arg[1]
let dir = std::env::current_exe()?
    .expect("the current exe should exist")
    .expect("the current exe should be a file")
const dir = __dirname;