Hi, all:
Does anyone have pwirte failed on android?
I've write a small test program, to test pwrite behavior on android emulator
and HTC G1,
but it's cann't call twice correctly. the return errno is EFBIG, but i only
write 1024 B to a file.
I cann't figure out why this happens, please help me. thank you...
this is my test program:
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
#include <sys/types.h>
#include <fcntl.h>
#include <errno.h>
static void
usage(const char *s)
{
fprintf(stderr, "USAGE: %s SECONDS\n", s);
exit(-1);
}
int main(int argc, char *argv[])
{
int fd;
char buf[8777];
ssize_t total_in = 0;
ssize_t max_write = 0x2 << 20; /* 2 * * M */
if (argc > 2)
usage("test_p filepath");
fd = open(argv[1], O_RDWR | O_CREAT, 0666);
if (fd < 0) {
perror(" open error");
exit(-1);
}
ssize_t ret = 0;
do {
ret = pwrite(fd, (void*)buf, 1024, total_in);
printf("Pwirte: ret: %d errnos:%d \n", ret, errno);
if (ret > 0) total_in += ret;
} while ((ret >0 && total_in < max_write) || errno == EINTR);
close(fd);
printf(" finish: total_write : %d K", total_in >> 10);
return 0;
}
On the emulator and HTC G1 both have same out come:
I've test it at every file system on the emulator and G1.
the Log :
# ./test_p /sqlite_stmt_journals/aaa
Pwirte: ret: 1024 errnos:0
Pwirte: ret: -1 errnos:27
finish: total_write : 1 K#
#
# ./test_p /cache/sss
Pwirte: ret: -1 errnos:27
finish: total_write : 0 K#
The df command :
# df
/dev: 49484K total, 0K used, 49484K available (block size 4096)
/sqlite_stmt_journals: 4096K total, 12K used, 4084K available (block size
4096)
/system: 69120K total, 68436K used, 684K available (block size 4096)
/data: 76544K total, 39424K used, 37120K available (block size 4096)
/cache: 69120K total, 20884K used, 48236K available (block size 4096)
/sdcard: 991488K total, 918256K used, 73232K available (block size 16384)
---
Best regards,
Zhang Jiejing
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---