GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  INITFILEPOS (3)

NAME

initfdpos, initFILEpos, adjfdpos, adjFILEpos - file positions indicator handling

CONTENTS

Synopsis
Description
Example
See Also
Authors

SYNOPSIS


.Fd #include <stdio.h>
.Fd #include <strfunc.h>

int initfdpos const char *fname int stream const char *ext int initFILEpos const char *fname FILE *stream const char *ext int adjfdpos int stream int posfd int doSync int adjFILEpos FILE *stream int posfd int doSync

DESCRIPTION

Those functions are used to maintain a file positions indicator between the program sessions. This is often needed when a process is being parsed a log file and tries to save current position within this log to start from this point later.

int initfdpos const char *fname int stream const char *ext creates a position indicator file "<fname>.<ext>", and returns its file descriptor. If the position file is already exists, then it advances stream’s position according to the information derived from that file. initfdpos also checks the file size and inode changes in order to be robust in situations when file shrinked or replaced.

int initFILEpos is almost the same except that it takes a FILE * argument instead of plain file descriptor.

Both functions returns position file descriptor, or -1 in case of failure.

int adjfdpos int stream int posfd int doSync and adFILEdpos writes the current position within the file referenced by stream into the posfd. If doSync is not zero, it also does fsync(2).

Return values: 0 (Success) or -1 in case of any errors.

EXAMPLE

void main() {
        int posfd;
        FILE *logfile;
        char buf[1042];

        logfile = fopen("file.log", "r");         if(!logfile)                 exit(EX_NOINPUT);

        while(fgets(buf, sizeof(buf), logfile)) {                 /* Do something ... */

                adjFILEpos(logfile, posfd, 0);         };

        /* Force data to be flushed on disk. */         adjFILEpos(logfile, posfd, 1);         fclose(logfile);         close(posfd); };

SEE ALSO

strfunc(3).

AUTHORS


.An Lev Walkin <vlm@lionet.info>
Search for    or go to Top of page |  Section 3 |  Main Index


Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.