如何获取当前目录并将其分配给linux中的变量[关闭]

Posted

技术标签:

【中文标题】如何获取当前目录并将其分配给linux中的变量[关闭]【英文标题】:How do I get the current dir and assign it to a variable in linux [closed] 【发布时间】:2020-02-07 02:58:30 【问题描述】:

我是编程新手,目前我遵循 pwd 教程并得出以下代码。 我需要分配一个变量来保存当前目录,并将其与其他文件连接,如下所示。

#include <unistd.h>
#define GetCurrentDir getcwd

main (
uint port,... )

  char buff[FILENAME_MAX];
  GgetCurrentDir(buff, FILE_MAX);

  FILE * fpointer ;
  fpointer =fopen(buff+"/config_db","w"); //here 
  fclose(fpointer);

【问题讨论】:

GgetCurrentDir 是不是打错字了? 看起来像you need a good C++ book,而不是“在线指导”。 您的代码已经完全符合您的描述。不清楚你在问什么。 【参考方案1】:

维基部分

在 C++17 中,您正在寻找 filesystem:

#include <iostream>
#include <filesystem>
namespace fs = std::filesystem;
int main()

    std::cout << "Current path is " << fs::current_path() << '\n';

见cppreference filesystem

在 linux API 中,您正在寻找 getcwd:

#include <string.h>
#include <unistd.h>

#include <iostream>

int main() 
  char buf[1 << 10];
  if (nullptr == getcwd(buf, sizeof(buf))) 
    printf("errno = %s\n", strerror(errno));
   else 
    std::cout << buf << std::endl;
  

见linux man page getcwd

你的部分

您做错的是您不能将char *char []+ 连接。 您应该从&lt;cstring&gt; 尝试strcat 或在投射后应用+std::string

#include <unistd.h>
#include <cstring>

#include <iostream>

#define GetCurrentDir getcwd

int main() 
  char config_db_path[1 << 10];
  GetCurrentDir(config_db_path, sizeof(config_db_path));  // a typo here

  strcat(config_db_path, "/config_db");
  // concatenate char * with strcat rather than +

  FILE* fpointer = fopen(config_db_path, "w");
  fclose(fpointer);

【讨论】:

Linux 呢?文件系统适用于 windows 对吗? @Alois std::filesystem 适用于支持 c++17 的编译器,无论是什么平台。 谢谢@tigertang3。之前的错误解决了,但我现在有这些错误: PortSelection_main.c:22:5: warning: first argument of 'int main(uint, ...)' should be 'int' [-Wmain] int main (^~ ~~ PortSelection_main.c:22:5: warning: 'int main(uint, ...)' 只需要零个或两个参数 [-Wmain] PortSelection_main.c:22:5: warning: 'int main(uint, . ..)' 声明为可变参数函数 [-Wmain] 你需要看一下c main函数的模板。 uint 不应该是第一个参数

以上是关于如何获取当前目录并将其分配给linux中的变量[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

我们如何在门控签入期间获取搁置集名称并将其分配给 tfs 构建任务中的变量

从对象获取属性值并将其分配给javascript中的变量

如何以字节为单位获取 pdf 的大小并将其分配给 Data 变量?

如何获取 fetch api 的字符串响应并将其分配给变量?

如何从转义闭包中获取值并将其分配给变量并在表格视图中显示

遍历目录中的文件并将文件名用作变量,并将文件路径分配给变量