我试图在恢复模式下以当前打开的状态在Android中打开一个块文件系统,打开该文件系统后,我想将光标位置移动到该块文件的开头。
int movecursor(const char* blockPartition)
{
int fd_read = open(blockPartition, O_RDONLY);
printf("fd_read=%d \n",fd_read);
// go to beginning
int returncode1 = lseek(fd_read, 0, SEEK_SET);// Here it is returning -1
printf("returncode1=%d and \n",returncode1);
}
在这里,我能够以当前安装的读取模式打开文件系统 但是当a试图将光标移动到该文件的开头时,它将返回-1(不允许进行操作)。
以上代码段作为android本机服务运行。
请帮助我将光标位置移动到文件系统的开头。
答案 0 :(得分:0)
您可以使用访问系统调用来检查您是否具有访问权限,然后再打开块分区。
if (access(partition, F_OK | W_OK) != -1) {
printf("%s partition is available.Continuing...\n", partition);
/* Open the mtd device for reading and writing */
int fd_path = open(partition, O_RDONLY);
lseek(fd_path, 0, SEEK_SET);// or lseek64 based on your system architecture
}
通常,当传递给函数的文件描述符无效时遇到“错误的文件描述符”,可能有多种原因:
* fd已在某处关闭。 * fd的值错误,这与从开放系统调用中获得的值不一致。