鸿蒙PC是有终端的,与手机类似,可以用另一台安装了HDC(OpenHarmony Device Connector)工具的设备连接鸿蒙PC进行测试,相关文档:https://developer.huawei.com/consumer/cn/forum/topic/0201763247640210925
另外,鸿蒙系统对权限的管理比较严格,使用 ls 命令失败很大可能是当前的用户没有对应的权限,建议将 ls 命令执行失败的错误信息打印出来,看看是 No such file or directory 还是 Permission denied。
这个查看当前用户和查看当前目录的简单程序,仅供参考。
#include <cstdio>
#include <cstdlib>
#include <cstring>
int main() {
// 执行 whoami 命令,查看当前用户是谁
FILE *whoamiPipe = popen("whoami", "r");
if (whoamiPipe == nullptr) {
perror("popen whoami");
return EXIT_FAILURE;
}
char buffer1[128];
if (fgets(buffer1, sizeof(buffer1), whoamiPipe) != nullptr) {
printf("当前用户: %s", buffer1);
}
pclose(whoamiPipe);
FILE *pipe = popen("ls", "r"); // 执行 "ls" 命令,并以只读方式打开管道
if (pipe == nullptr) {
// 获取错误信息并打印
fprintf(stderr, "popen failed: %s\n", strerror(errno));
return EXIT_FAILURE;
}
char buffer2[128];
while (fgets(buffer2, sizeof(buffer2), pipe) != nullptr) {
printf("%s", buffer2); // 读取并输出 "ls" 命令的输出
}
pclose(pipe); // 关闭管道
return EXIT_SUCCESS;
}