mirror of
https://github.com/postgres/postgres.git
synced 2025-04-22 23:02:54 +03:00
Add some functions to fd.c for the convenience of extensions.
For example, if you want to perform an ioctl() on a file descriptor opened through the fd.c routines, there's no way to do that without being able to get at the underlying fd. KaiGai Kohei
This commit is contained in:
parent
77a1d1e798
commit
070140ee48
@ -1577,6 +1577,40 @@ FilePathName(File file)
|
|||||||
return VfdCache[file].fileName;
|
return VfdCache[file].fileName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Return the raw file descriptor of an opened file.
|
||||||
|
*
|
||||||
|
* The returned file descriptor will be valid until the file is closed, but
|
||||||
|
* there are a lot of things that can make that happen. So the caller should
|
||||||
|
* be careful not to do much of anything else before it finishes using the
|
||||||
|
* returned file descriptor.
|
||||||
|
*/
|
||||||
|
int
|
||||||
|
FileGetRawDesc(File file)
|
||||||
|
{
|
||||||
|
Assert(FileIsValid(file));
|
||||||
|
return VfdCache[file].fd;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* FileGetRawFlags - returns the file flags on open(2)
|
||||||
|
*/
|
||||||
|
int
|
||||||
|
FileGetRawFlags(File file)
|
||||||
|
{
|
||||||
|
Assert(FileIsValid(file));
|
||||||
|
return VfdCache[file].fileFlags;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* FileGetRawMode - returns the mode bitmask passed to open(2)
|
||||||
|
*/
|
||||||
|
int
|
||||||
|
FileGetRawMode(File file)
|
||||||
|
{
|
||||||
|
Assert(FileIsValid(file));
|
||||||
|
return VfdCache[file].fileMode;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Make room for another allocatedDescs[] array entry if needed and possible.
|
* Make room for another allocatedDescs[] array entry if needed and possible.
|
||||||
|
@ -75,6 +75,9 @@ extern int FileSync(File file);
|
|||||||
extern off_t FileSeek(File file, off_t offset, int whence);
|
extern off_t FileSeek(File file, off_t offset, int whence);
|
||||||
extern int FileTruncate(File file, off_t offset);
|
extern int FileTruncate(File file, off_t offset);
|
||||||
extern char *FilePathName(File file);
|
extern char *FilePathName(File file);
|
||||||
|
extern int FileGetRawDesc(File file);
|
||||||
|
extern int FileGetRawFlags(File file);
|
||||||
|
extern int FileGetRawMode(File file);
|
||||||
|
|
||||||
/* Operations that allow use of regular stdio --- USE WITH CAUTION */
|
/* Operations that allow use of regular stdio --- USE WITH CAUTION */
|
||||||
extern FILE *AllocateFile(const char *name, const char *mode);
|
extern FILE *AllocateFile(const char *name, const char *mode);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user