c - 如何在应用程序包内的 C 语言中查找当前目录 [macOS]

标签 c macos perl

我们有一个应用程序包,其主要可执行文件是用 Perl 编写的,并用 pp 打包。不幸的是,这个可执行文件阻止我们对 .app 进行协同设计。显然,用 pp 创建的可执行文件无法进行代码签名。为了允许 union 签名,我们希望将主可执行文件从其默认文件夹“MacOS”移动到“Resources”文件夹,因为该文件夹似乎可以托管用于 union 签名的可执行文件并创建一个将运行该可执行文件的启动器。我们不知道这是否有效,但我们想尝试一下。

我们需要创建一个启动器来放入“MacOS”文件夹中,该文件夹将启动我们的主要可执行文件。我已经编写了一个小型 C 程序,可以在另一个文件夹中启动可执行文件。它在 Finder 中工作正常,但如果在 .app 结构中则失败。显然,这与 .app 内的相对路径不同有关。我希望向以下 C 程序添加一种获取 .app 的当前目录并构造要打开的可执行文件的相对路径的方法。这是我第一次用 C 语言编写东西,我需要你的帮助来进行修改。

#include<stdlib.h>
#include<stdio.h>

int main( void ){

int result ;
result=system("../Resources/MyApp");
printf("%d", result);
return 0;
}

最佳答案

我不太确定你想做什么,但 pwd 是你正在寻找的东西。在第一个代码块中,您将收到工作目录的完整路径,在第二个代码块中,您可以通过int result知道操作是否成功完成(如果结果= 0则OK)

#include <stdlib.h>
#include <stdio.h>

int main(void)
{
    char* dir= malloc (50);
    dir = getenv("pwd");
    printf("Workdir: %s\n", dir);
    free(dir);

    int result;
    result = system("pwd");
    printf("%d", result);
    return 0;
}

然后您可以编辑完整路径并创建相对路径。

关于c - 如何在应用程序包内的 C 语言中查找当前目录 [macOS],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55664762/

相关文章:

C - 二维卷积

c - 设计一个函数,使其在 C 中没有全局变量

macos - 在 macOS 中从终端打开 Sublime Text

perl - 在 Perl 中访问具有子进程的数组

c - Valgrind 错误

c - 从 GNU AS 调用时 C 乘法结果放在哪里?

c# - Xamarin 没有已安装的配置文件与已安装的 iOS 签名身份匹配

iOS 到 Mac OS X [核心] 蓝牙数据传输

perl - 如何从 Perl 对 PDF 文件进行全文搜索?

perl - 如何从 Perl 中不断更新的文件中读取数据?