【发布时间】:2018-01-14 20:24:43
【问题描述】:
我已经四处寻找,但找不到我的问题的答案。
我正在为 beagle bone black 交叉编译一个 C++ 应用程序,并希望按如下方式使用 linux system() 函数:
system("echo DM-GPIO-Test > $SLOTS");
它是添加一个设备覆盖来控制GPIO引脚。回声命令“echo DM-GPIO-Test > $SLOTS”在任何地方直接在小猎犬骨头上的终端上执行时都可以正常工作。 SLOTS 是我定义的环境变量,DM-GPIO-Test-00A0.dtb0 在 /lib/firmware
我在执行 c++ 应用程序时收到以下错误:
“sh: 1: 无法创建:目录不存在”
像我这样调用系统函数是不是不对?
提前致谢
【问题讨论】:
-
system("echo $SLOTS");是否显示任何内容?作为旁注,您的示例中没有任何特定于 C++ 的内容。 -
您是否使用您在 shell 中使用的同一用户运行它?
-
不,它不显示任何执行 system("echo $SLOTS");.但是,错误消失了。我正在使用 sudo 运行应用程序。我也尝试将 sudo 放入系统函数的字符串中,但没有。 @ DYZ,是的,你是对的,实际上没有特定的 C++。这是C
-
在这种情况下不要使用
system。您应该使用fopen+fprintf+fclose并使用getenv("SLOTS")获取$SLOTS路径,检查并将其传递给fopen -
你的问题被否决了,因为它缺少一些minimal reproducible example
标签: c linux debian beagleboneblack