gpt4 book ai didi

c - 在 shell 中运行 C 程序时将相对路径扩展为完整路径

转载 作者:行者123 更新时间:2023-11-29 09:49:00 24 4
gpt4 key购买 nike

当我的脚本需要与 C 可执行文件通信时,我遇到了问题。我无法获取脚本的完整路径,我需要将其加载并发送到另一个进程。

脚本的名字是myScript

#!/home/user/git/proyect/test

hello this

is a
script

这是C可执行文件的源代码

#include <stdio.h>

int main (int argc, char *argv[]){
int count;

printf ("Este programa fue llamado con: \"%s\".\n",argv[0]);
if (argc > 1){
for (count=1; count<argc; count++){
printf("argv[%d] = %s\n", count, argv[count]);
}
}
else{
printf("The command had no other arguments.\n");
}
return 0;
}

如果我从终端运行 myScript

  • argv[0] 显示可执行文件的路径(我猜那是因为它是 #! 处的信息)。
  • argv[1] 显示传递给可执行文件的第一个参数,即
    • 如果我使用 ./myScript 作为参数,这就是我所看到的(相对路径)
    • 如果我使用 /home/user/git/proyect/test/scriptFolder/myScript 作为参数,它会显示绝对路径(这是我需要的,但我不想每次都在终端中写入完整路径)

所以我的问题是,如何在调用脚本时获取 myScript 的完整路径而不传递其完整路径?

最佳答案

你的问题措辞不太好,所以我不确定我是否回答了你所问的同一个问题,但你可以使用 realpath() 将“./myScript”转换为其完整路径。功能。

关于c - 在 shell 中运行 C 程序时将相对路径扩展为完整路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12922151/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com