HarmonyOS c++代码调用popen,提示popen error:Permission denied

代码如下:

std::string get_local_route_table(){
  const char* cmd = "ip route list table all";
  xinfo2(TSF"popen cmd=%_", cmd);

  std::string result;
  FILE* pp = popen(cmd, "r");
  if (!pp) {
    xerror2(TSF"popen error:%_", strerror(errno));
    return result;
  }

  char line[1024];
  while (fgets(line, sizeof(line), pp) != NULL) {
    result.append(line, strlen(line));
  }
  pclose(pp);

  return result;
}
HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Excelsior_abit

musl libc接口限制使用,参考文档:

https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/native-lib/guidance-on-ndk-libc-interfaces-affected-by-permissions.md

当前OH的程序框架就是参考其他系统的单进程模型, 不允许应用直接创建进程的(为了安全、系统性能考虑)。官方文档:

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/nce-on-ndk-libc-interfaces-affected-by-permissions-V5

分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS 如何调用标准C++
499浏览 • 1回复 待解决
HarmonyOS taskpool无法执行C++代码
24浏览 • 1回复 待解决
c/c++层主动调用ArkTS存在问题
462浏览 • 1回复 待解决
C++调用ArkTS 定义的方法
2096浏览 • 1回复 待解决
ArkTS与C++互相直接调用
2352浏览 • 1回复 待解决
在读取媒体文件open: permission denied
2918浏览 • 1回复 待解决
HarmonyOS 调用C++接扣将数据写入文件
31浏览 • 1回复 待解决