android是一種linux,它必須支持posix.But,當它似乎不支持syscall時,open()。 下面是測試代碼,而我通過NDK編譯:android似乎不支持系統調用,打開()
#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的提示:
[email protected]:~$ adb shell /data/pwrite/test1
open fail.
/data/pwrite.txt: No such file or directory
而不是僅僅打印「打開失敗」,而是打印實際的錯誤。你可以通過打印'errno'或'strerror'返回的字符串,或者使用'perror'函數來做到這一點。 –
kaiwii @ ubuntu:〜$ adb shell/data/pwrite/test1 打開失敗。 /data/pwrite.txt:沒有這樣的文件或目錄 –
@Joachim Pileborg我使用perror打印錯誤,上面是它提示。但是,我感到困惑,爲什麼不open()創建文件.thx –