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 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.
|
||||
|
@ -75,6 +75,9 @@ extern int FileSync(File file);
|
||||
extern off_t FileSeek(File file, off_t offset, int whence);
|
||||
extern int FileTruncate(File file, off_t offset);
|
||||
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 */
|
||||
extern FILE *AllocateFile(const char *name, const char *mode);
|
||||
|
Loading…
x
Reference in New Issue
Block a user