【发布时间】:2012-06-02 14:49:39
【问题描述】:
android是一种linux,它必须支持posix。但是,当它似乎不支持syscall时,open()。 这是测试代码,我通过NDK编译:
#include <unistd.h>
#include <stdio.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
void main(){
int fd;
char pathname[128] = "/data/pwrite.txt";
fd = open(pathname, O_WRONLY);
if(fd==-1){
printf("open fail.\n");
}
perror("/data/pwrite.txt");
}
以下是来自android的提示:
kaiwii@ubuntu:~$ adb shell /data/pwrite/test1
open fail.
/data/pwrite.txt: No such file or directory
【问题讨论】:
-
不只是打印
"open fail",而是打印实际错误。您可以通过打印出errno或strerror返回的字符串或使用perror函数来做到这一点。 -
kaiwii@ubuntu:~$ adb shell /data/pwrite/test1 打开失败。 /data/pwrite.txt: 没有这样的文件或目录
-
@Joachim Pileborg 我使用 perror 来打印错误,上面是它提示的内容。但是,我感到很困惑,为什么 open() 还没有创建文件。thx
-
您访问过this 吗? @kaiwiiho
-
实际上,我的问题似乎与它有点不同。
标签: android linux android-ndk linux-kernel