lseek的第二个参数似乎没有起作用啊
我照着APUE第三章的讲解,测试一下lseek函数。
首先关闭stdout,再打开一个临时文件,这个临时文件就是stdout的目标了,然后lseek寻址,offset我指定一个正整数。
我期待的结果是,因为offset是正数2,所以写文件的时候应该先写入两个空格,再写入我指定的字符串。但是运行的结果是,lseek的第二个参数似乎不起作用,每次运行之后看/tmp/my1文件,结果都是增加了"123”,并没有增加我预期中的空格。
#include <unistd.h>
#include <fcntl.h>
#include <stdio.h>
int main(void){
close(STDOUT_FILENO);
int fd=open("/tmp/my1",O_CREAT|O_RDWR);
lseek(fd,2,SEEK_END);
printf("123");
return 0;
}