fdatasync(int) declare is found in bionic/libc/include/unistd.h, but it is not actually implemented in libc. I can NOT find the fdatasync symbol in /system/lib/libc.so.
You're right. I found the sample code from Google. File ./external/sqlite/dist/sqlite3.c has the snippet: /* ** Use the fdatasync() API only if the HAVE_FDATASYNC macro is defined. ** Otherwise use fsync() in its place. */ #ifndef HAVE_FDATASYNC # define fdatasync fsync #endif
Reading ./bionic/libc/include/sys/linux-unistd.h (generated by Google as you mentioned), I found only fsync() was implemented.
Android OS based smartphones have been selling really well during the last few months, and some of the credit must go the large number of apps that are being created for android smartphones.
4 comments:
I got the same problem. fdatasync() is declared. Where is its implementation?
I use fsync instead to pass through the build.
You're right. I found the sample code from Google.
File ./external/sqlite/dist/sqlite3.c has the snippet:
/*
** Use the fdatasync() API only if the HAVE_FDATASYNC macro is
defined.
** Otherwise use fsync() in its place.
*/
#ifndef HAVE_FDATASYNC
# define fdatasync fsync
#endif
Reading ./bionic/libc/include/sys/linux-unistd.h (generated by Google as you mentioned), I found only fsync() was implemented.
Android OS based smartphones have been selling really well during the last few months, and some of the credit must go the large number of apps that are being created for android smartphones.
best android apps
best iphone apps
Post a Comment