#include <File.h>
Inheritance diagram for BFile:

It does this by implementing the Read()/Write() and ReadAt()/WriteAt() functions that are declared by the BPositionIO class.
BFile, the file is automatically opened. The file is closed when you re-initialize or destroy the object.BFile, and create a new file at the same time, through BDirectory's CreateFile() function. In this case, you don't have to supply an open mode - the BFile that's returned to you will automatically be open for reading and writing. (You are asked if you want the creation to fail if the named file already exists.)BFiles are meant to be used to access regular files, you aren't prevented from opening and reading a directory (you won't be able to write the directory, however). This isn't exactly a feature - there's not much reason to access a directory this way - you should simply be aware that it's not an error.BFile ends up opening will be the file or directory that the link points to.is a feature; very few applications should ever need to look at a symbolic link. (If yours is one of the few that does want to, you should go visit the BSymLink class.)| Constant | Meaning |
|---|---|
| B_READ_ONLY | This object can read, but not write, the file. |
| B_WRITE_ONLY | This object can write, but not read, the file. |
| B_READ_WRITE | This object can read and write the file. |
| Constant | Meaning |
|---|---|
| B_CREATE_FILE | Create the file if it doesn't already exist. |
| B_FAIL_IF_EXISTS | If the file already exists, the initialization (of the BFile object) fails. |
| B_ERASE_FILE | If the file already exists, erase all its data and attributes. |
| B_OPEN_AT_END | Sets the data pointer to point to the end of the file. |
file.SetTo(entry, B_READ_WRITE);
file.SetTo(entry, B_READ_WRITE | B_CREATE_FILE | B_ERASE_FILE);
file.SetTo(entry, B_READ_WRITE | B_CREATE_FILE | B_FAIL_IF_EXISTS);
Public Member Functions | |
| BFile () | |
| BFile (const entry_ref *ref, uint32 open_mode) | |
| BFile (const BEntry *entry, uint32 open_mode) | |
| BFile (const char *path, uint32 open_mode) | |
| BFile (const BDirectory *dir, const char *path, uint32 open_mode) | |
| BFile (const BFile &file) | |
| virtual | ~BFile () |
| status_t | SetTo (const entry_ref *ref, uint32 open_mode) |
| status_t | SetTo (const BEntry *entry, uint32 open_mode) |
| status_t | SetTo (const char *path, uint32 open_mode) |
| status_t | SetTo (const BDirectory *dir, const char *path, uint32 open_mode) |
| bool | IsReadable () const |
| bool | IsWritable () const |
| virtual ssize_t | Read (void *buffer, size_t size) |
| virtual ssize_t | ReadAt (off_t pos, void *buffer, size_t size) |
| virtual ssize_t | Write (const void *buffer, size_t size) |
| virtual ssize_t | WriteAt (off_t pos, const void *buffer, size_t size) |
| virtual off_t | Seek (off_t position, uint32 seek_mode) |
| virtual off_t | Position () const |
| virtual status_t | SetSize (off_t size) |
| virtual ssize_t | MetaWrite (const char *in_name, type_code in_type, int32 in_index, off_t in_offset, const void *in_buf, size_t in_size) |
| virtual ssize_t | MetaRead (const char *in_name, type_code in_type, int32 in_index, off_t in_offset, void *out_buf, size_t in_size) const |
| virtual status_t | MetaRemove (const char *in_name, int32 in_index) |
| virtual status_t | MetaGetInfo (const char *in_name, int32 in_index, meta_info *out_info, BString *out_name, void **inout_cookie) const |
| BFile & | operator= (const BFile &file) |
|
|
Creates a new BFile object, initializes it according to the arguments, and sets InitCheck() to return the status of the initialization.
The default constructor does nothing and sets InitCheck() to |
|
||||||||||||
|
Creates a new BFile object, initializes it according to the arguments, and sets InitCheck() to return the status of the initialization.
|
|
||||||||||||
|
Creates a new BFile object, initializes it according to the arguments, and sets InitCheck() to return the status of the initialization.
|
|
||||||||||||
|
Creates a new BFile object, initializes it according to the arguments, and sets InitCheck() to return the status of the initialization.
|
|
||||||||||||||||
|
Creates a new BFile object, initializes it according to the arguments, and sets InitCheck() to return the status of the initialization.
|
|
|
Creates a new BFile object, initializes it according to the arguments, and sets InitCheck() to return the status of the initialization. The copy constructor creates a new BFile that's open on the same file as that of the argument. Note that the two objects maintain separate data pointers into the same file:
|
|
|
Closes the object's file, frees its file descriptor, and destroys the object. |
|
|
This function tell you whether the BFile was initialized to read its file. If the object isn't (properly) initialized, they both return Note that this function don't query the actual file to check permissions, they only tell you what the access request was when the BFile object was initialized. |
|
|
These functions tell you whether the BFile was initialized to write its file. If the object isn't (properly) initialized, they both return Note that this function don't query the actual file to check permissions, they only tell you what the access request was when the BFile object was initialized. |
|
||||||||||||||||||||||||
|
Reimplemented from BDataIO. |
|
||||||||||||||||||||||||||||
|
Reimplemented from BDataIO. |
|
||||||||||||
|
Reimplemented from BDataIO. |
|
||||||||||||||||||||||||||||
|
Reimplemented from BDataIO. |
|
|
Assignment operator In the expression BFile a = b;
BFile a is initialized to refer to the same file as b. To gauge the success of the assignment, you should call InitCheck() immediately afterwards. You can't assign a BFile to itself (
Assigning to an uninitialized BFile is "successful": The assigned-to BFile will also be uninitialized ( |
|
|
Implements BPositionIO. |
|
||||||||||||
|
This function, which are inherited from BPositionIO, read the file's data; note that they don't touch the file's attributes. The Read() function read param_ref numBytes bytes of data from the file and place this data in buf. The buffer that buf points to must already be allocated, and must be large enough to accommodate the read data. Note that the read-into buffer is not null-terminated by the reading functions. Read() reads the data starting at the current location of the file's data pointer, and increments the file pointer as it reads.
NULL-terminated, you can use the return value to set the NULL.
Reimplemented from BPositionIO. |
|
||||||||||||||||
|
This function, which are inherited from BPositionIO, read the file's data; note that they don't touch the file's attributes. The Read() function read param_ref numBytes bytes of data from the file and place this data in buf. The buffer that buf points to must already be allocated, and must be large enough to accommodate the read data. Note that the read-into buffer is not null-terminated by the reading functions. ReadAt() reads the data from the location specified by the pos argument, which is taken as a measure in bytes from the beginning of the file. ReadAt() does not bump the file's data pointer.
NULL-terminated, you can use the return value to set the NULL.
Implements BPositionIO. |
|
||||||||||||
|
Sets the location of the file's data pointer. The new location is reckoned as pos bytes from the position given by the seek_mode constant:
If you Seek() to a position that's past the end of the file and then do a Write(), the file will be extended (padded with garbage) from the old end of file to the Seek()'d position. If you don't follow the Seek() with a Write(), the file isn't extended.
Implements BPositionIO. |
|
|
This function set the size, in bytes, of the object's file. SetSize() sets the size of the data portion to the size given by the argument:
Reimplemented from BPositionIO. |
|
||||||||||||||||
|
Closes the BFile's current file (if any), and opens the file specified by the arguments. If the specified file is a symbolic link, the link is automatically traversed (recursively, if necessary). Note that you're not prevented from opening a directory as a BFile, but you are prevented from writing it. In the path function, path can be absolute or relative, and can contain "." and ".." elements. If path is relative, it's reckoned off of the current working directory.
|
|
||||||||||||
|
Closes the BFile's current file (if any), and opens the file specified by the arguments. If the specified file is a symbolic link, the link is automatically traversed (recursively, if necessary). Note that you're not prevented from opening a directory as a BFile, but you are prevented from writing it. In the path function, path can be absolute or relative, and can contain "." and ".." elements. If path is relative, it's reckoned off of the current working directory.
|
|
||||||||||||
|
Closes the BFile's current file (if any), and opens the file specified by the arguments. If the specified file is a symbolic link, the link is automatically traversed (recursively, if necessary). Note that you're not prevented from opening a directory as a BFile, but you are prevented from writing it.
|
|
||||||||||||
|
Closes the BFile's current file (if any), and opens the file specified by the arguments. If the specified file is a symbolic link, the link is automatically traversed (recursively, if necessary). Note that you're not prevented from opening a directory as a BFile, but you are prevented from writing it.
|
|
||||||||||||
|
These functions, which are inherited from BPositionIO, write the file's data; note that they don't touch the file's attributes. Write() write numBytes bytes of data into the file; the data is taken from the buf argument. The two functions differ in their use (or non-use) of the file's data pointer in the same manner as Read().
Reimplemented from BPositionIO. |
|
||||||||||||||||
|
These functions, which are inherited from BPositionIO, write the file's data; note that they don't touch the file's attributes. WriteAt() write numBytes bytes of data into the file; the data is taken from the buf argument. The two functions differ in their use (or non-use) of the file's data pointer in the same manner as ReadAt().
Implements BPositionIO. |