lseek

    0热度

    1回答

    我有这个结构时偏移: typedef struct ip_row { sem_t row_lock; char row_name[NAME_SIZE]; char row_address4[NAME_SIZE]; // IPv4 address name char row_address6[NAME_SIZE]; // IPv6 address name

    0热度

    1回答

    int main(int argc, char *argv[]) { int i, j, count; int f1; char buf[16]; f1 = open(argv[1], O_RDWR | O_APPEND); if(f1 == -1) perror("open failed"); if(lseek(f1, 0, SEEK_SET) == -1)

    1热度

    1回答

    我正在执行的尾部功能,我只是应该使用read(),write()和lseek() I/O,到目前为止,我有这样的: int printFileLines(int fileDesc) { char c; int lineCount = 0, charCount = 0; int pos = 0, rState; while(pos != -1 && line

    0热度

    1回答

    我想写一个简单的程序,通过封装函数如open,lseek,pread读取文件。 我的测试文件中包含: first second third forth fifth sixth seventh eighth 我试图主函数读取20个字节,从文件偏移10: #include <iostream> #include "CacheFS.h" using namespace std; int ma

    1热度

    1回答

    我有以下程序 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <fcntl.h> #include <sys/stat.h> int main(int argc, char* argv[]) { int fd; char buffer[100]; // open n

    1热度

    1回答

    我很难理解为什么lseek函数是有用的。 假设我这样从用户给我一个参数: off_t offset = 10; 而我想从偏移100个字节读取。 我可以使用pread这样的: void * buf = malloc(100); if (buf == NULL) { exit(1);} int res = pread(file_id, buf, 100, offset); 在另一方面,我知

    9热度

    4回答

    假设我们的目的是在运行Linux的嵌入式设备上创建一个开头有大洞的文件,我们稍后将写入该文件。我们打开文件,获取一个文件描述符并在其上调用lseek来寻找某个已知的位置。之后,当我们想要在查询到的位置写入该文件时,我们将其称为write。 但是,在第一次写入时,由seek创建的空洞将被填满,如果空洞足够大,则此操作可能需要一些时间。在我的应用程序中,没有必要进行这种零初始化,因为这个孔的长度是确切

    0热度

    1回答

    我有一个正常的文件打开,它充当记录数据库。我打开一看是: fd = open ("file", O_CREAT | O_APPEND | O_RDWR, 0644); 然后在我的find_record功能,我谨的偏移量开始。 ret_val = lseek(fd, 0, SEEK_SET); 它抛出ESPIPE错误。现在我不知道发生了什么。 我的文件描述符被视为管道?如果是,为什么? 是l

    0热度

    2回答

    我想用lseek检查我的txt文件的大小。不幸的是我没有工作。 我的T.Txt包含16个字符:ABCDABCDDABCDABCD没有更多。所以数字变量应该有16 + 1。为什么它是19而不是?第二个问题为什么我不能使用 SEEK_END-1从最后的位置1开始。我会很感激这方面的帮助。 int main(void) { int fd1 = open("T.txt", O_RDONLY);

    1热度

    2回答

    我不得不实施tail(posix系统调用)的一个版本。我使用了lseek和pread。 (我到达文件末尾,然后搜索正确的偏移位置,然后使用pread从此位置读取,并写入stdout直到文件末尾)。 但是现在,我必须实现另一个没有lseek的版本。现在的问题如下: “如果文件不支持调用lseek,那么以前的版本不起作用。引用发生这种情况的情况。提出一个解决方案(你不会实现)来解决这个问题。 我不明白