我正在尝试在C ++函数中使用C中的函数。
此功能的一部分涉及使用fopen:
FILE * fd = NULL;
fd = fopen("/sys/platform/dacc/config","w");
if(!fd){
perror("Platform configuration failed:");
return -1;
}
fwrite(conf,1,4096,fd);
fclose(fd);
return 0;
我在C中有一些代码可以按照我想要的方式进行操作。我想使用Qt将此操作连接到一个按钮,在这里询问了一个问题后,我能够使用" extern C"来调用该函数。将它包含在我的c ++代码中。
现在我有相同的代码在C ++中运行,但是我无法再打开相关文件。相反,我现在得到fopen返回的null,而perror给出了消息
Platform configuration failed: Permission Denied
这让我感到困惑,因为我的C测试代码是从没有任何高程的终端运行的,所以我没有权限应该是任何类型的问题。
运行C代码的程序可用的权限与包含C代码的C ++程序可用的权限是否存在差异?
答案 0 :(得分:2)
使用" extern C"时,权限没有区别关键词。这只是阻止编译器破坏函数的名称。