Я пытаюсь использовать fopen
, чтобы открыть файл и записать в него журналы и сохранить его обратно на устройство, но мне кажется, что fopen
и strerror
не возвращает error 22
: рекомендуемое расположениебыло /data
.Я немного поискал здесь и обнаружил, что лучшее местоположение - /mnt/sdcard
, скажем Download
:
#include <stdio.h>
#include <android/log.h>
#include <errno.h>
#include <string.h>
int main()
{
//writing to a file
FILE * fp;
fp = fopen("logmsg.txt", "+wb");
if (fp != NULL) {
fprintf(fp,"File created successfully!\n");
printf("File created successfully!\n");
}
else {
printf("Failed to create the file.\n");
printf( "Error code opening file: %d\n", errno );
printf( "Error opening file: %s\n", strerror( errno ) );
return -1;
}
return 0;
}
Однако я не могу изменить разрешения с помощью chmod
и он не возвращает ошибки./mnt
смонтирован noExec?Любой обходной путь приветствуется.
Некоторая информация:
Kernel: 3.18.31-g3d35637
CPU HW: Qualcomm Technologies, Inc APQ8096
Processor : AArch64 Processor rev 2 (aarch64)
Обновление-1 : после предложений от @kiran изменить +w
на w+
, у меня есть error 30
какRead-only file system
на \data
и Permission Denied
на /mnt/sdcard/Download
.Как мне преодолеть эту проблему?
Обновление-2: Быстрый обходной путь : То, что я сделал, было adb shell mount -o rw
, и я смог сохранить свой файл