【问题标题】:Change argv[0] in Sublime text在 Sublime 文本中更改 argv[0]
【发布时间】:2017-06-27 12:53:45
【问题描述】:

argv[0] 是 Netbeans 中带有扩展名的文件的完整路径,但是当在 Sublime Text 中运行同一段代码时,它会给出带有正斜杠且没有文件扩展名的输出。

printf("%s\n",argv[0]);

Netbeans 中的输出:

F:\Projects\C\Xnet\Xnet\dist\Debug\MinGW-Windows\StartX.exe

Sublime Text 中的输出:

F:\Projects\C\Xnet\Xnet/StartX

为什么?如何在 Sublime Text 中更改它以获得与 Netbeans 中相同的结果?

【问题讨论】:

  • 为什么不呢?两者都是有效的。由启动程序的代码设置argv[0]。唯一的问题是你的期望。您的预期并非不合理,但实际情况并非如此。
  • 为什么会出现问题?你想用它做什么? argv[0] 没有标准,只有约定。
  • @Boiethios 它应该是“F:\Projects\C\Xnet\Xnet\StartX”而不是“F:\Projects\C\Xnet\Xnet/StartX”。为什么文件名前有正斜杠?在崇高的文本中是正常的吗?
  • " 应该是……" - 请提供对标准的参考。这不是 C 的问题。
  • 正斜杠对我来说看起来像一个错误,它应该是一个 \ 为了保持一致,即使正斜杠实际上没有错。如果麻烦,请制定解决方法。

标签: sublimetext3


【解决方案1】:

最后,我想我有一些线索。我更改了 sublime text 中的构建系统选项。

{
 "cmd" : "gcc $file_name -o ${file_base_name}",
 "selector" : "source.c",
 "shell" : true,
 "working_dir" : "$file_path",
 "variants":
    [
     {
      "name": "Run",
      "cmd": "${file_base_name}.exe"
     }
   ]
}

现在 argv[0] 只返回带有扩展名的文件名 (filename.exe)

【讨论】:

  • 不要把线索放在那里,而只有完整的有效答案。似乎"variants" 中的"cmd" 是您问题的关键:一旦您找到如何修改它以适合您的目的,请发布您的答案并附上解释。
  • @Boiethios 我不知道如何将“//”附加到 $file_path。我不熟悉这个...
猜你喜欢
  • 1970-01-01
  • 2014-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-22
  • 1970-01-01
相关资源
最近更新 更多