/*
 * Copyright 2022 Google LLC
 *
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */

#include "src/utils/SkGetExecutablePath.h"

#include <linux/limits.h>
#include <sys/types.h>
#include <unistd.h>
#include <cstddef>

// Note that /proc/self/exe is Linux-specific; this won't work on other UNIX systems.

std::string SkGetExecutablePath() {
    std::string result(PATH_MAX, '\0');
    ssize_t len = readlink("/proc/self/exe", result.data(), result.size() - 1);
    if (len < 0 || static_cast<size_t>(len) >= PATH_MAX - 1) {
        result.clear();
    } else {
        result.resize(len);
    }
    return result;
}
