#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
答案 0 :(得分:1)
我认为问题不在于syscall open()
,而在于您尝试访问/data
。此文件夹仅适用于有根移动的移动设备或模拟器。您是否尝试将文件放入/sdcard
文件夹?
答案 1 :(得分:1)
我认为问题出现在标志中 - 您只使用O_WRONLY
。但是如果文件不存在,您还应该使用O_CREAT
标志创建它。因此,如果文件不存在,您应该致电:
fd = open(pathname, O_WRONLY | O_CREAT);