Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use SEEK_CUR on a FILE*

Tags:

c

fseek

offset=ftell(ptr)-sizeof(student1);
fseek(ptr,offset,SEEK_SET);
fwrite(&student1,sizeof(student1),1,ptr);

This C code means move the pointer from the current position ftell(ptr) to start of the just read structure block. Am I right?

If I'm right, can I use SEEK_CUR instead of SEEK_SET to go back to start of the structure block in the file?

Please show me how to use SEEK_CUR and go backward to start of the structure block.

I'm newbie to programming. So please kindly help me.

Edit: Thank you for the answers. What I'm trying to do is to search for a keyword (Roll number of a student) and update this student's information (Name,Address,..). The updated datas are replaced the previous datas successfully. Please let me ask one more question. It there any way to insert the new data above the previous data instead of replacing it with old data?

like image 650
Min Naing Oo Avatar asked Dec 26 '22 14:12

Min Naing Oo


1 Answers

This C code means move the pointer from the current position [ ftell(ptr) ] to start of the just read structure block. Am I right?

I think so.

Please show me how to use SEEK_CUR and go backward to start of the structure block.

You can use a negative offset.

#include <stdio.h>

fseek (ptr, -sizeof student1, SEEK_CUR);

Anyway, you should avoid these calls; it could be very slow. Use rather sequential reading.

like image 121
md5 Avatar answered Dec 29 '22 03:12

md5