linux编程中read函数以O_APPEND方式打开文件,用lseek将便宜量之余文件开始处,为何写入文件还是在末端写入
int main( int argc, char *argv[] ){
int fileFd;
off_t off;
if( argc != 3 || strncmp( argv[1], "--help", strlen( "--help" ) ==0 ) )
err_quit( "Usage: %s <fileName>", argv[0] );
if( ( fileFd = open( argv[1], O_WRONLY | O_APPEND) ) < 0 )
err_sys( "open %s file error", argv[0] );
off = lseek( fileFd, 0, SEEK_SET );
write( fileFd, argv[2], strlen( argv[2] ) );
exit( EXIT_SUCCESS );
}
写入文件开头,你需要把文件内容全部读取出来,然后把字符串插入最前面的位置,然后再把所有的内容全部写回文件
APPEND的含义是在每次写之前,都将标志位移动到文件的末端。以O_APPEND方式打开的文件不能回退文件指针。