Libntfs
This is an old revision of this page, as edited by Rhys (talk | contribs) at 06:09, 19 August 2009. It may differ significantly from the current revision. |
libntfs | |
![]() | |
General | |
---|---|
Author(s) | Numerous |
Maintainer(s) | shareese |
Contributor(s) | rodries |
Type | Ported Libraries |
Version | August 19, 2009 |
Licence | GNU GPL v2 |
Links | |
Source |
libntfs is a port of the NTFS-3G driver to the Nintendo GameCube/Wii, modelled on the libfat interface.
NTFS-3G is an open source cross-platform implementation of the Microsoft Windows NTFS file system.
Features
- Full read/write, files of any size can be created, modified, renamed, moved, or deleted.
- Compression, read/write support for compressed files
- Symbolic link and directory junction walking
- Partial journaling (see below)
NTFS-3G only supports (partial) journaling, so unexpected crashes or power loss can leave the file system in an inconsistent state. The only way to (correctly) fix it is to boot into Windows and let NTFS replay the Journal.
Unsupported
- Encryption, read/write support for encrypted files
- Security (will probably never be implemented, criples library functionality)
Implementation Specific Features
The following describes some of the differences between libntfs and other implementations of NTFS-3G.
Symbolic Links
Symbolics links are supported by the NTFS filesystem and are therefore supported in libntfs; however, when libntfs opens symbolic link a it is first (transparently) resolved. The effect of this is that when you open a symbolic link you in instaid end up opening what it was linked to. Creation of symbolic links is still supported, however once created you cannot actually tell it exists due to the transparent link resolution.
This was a design choice and not a defect. I may change this behaviour in the future if it turns out to be troublesome.
Compiling and Installing
Make sure you have devKitPPC and the latest libogc installed. Then type:
make make install # or 'sudo make install' if you aren't root.
Usage
NTFS related routines can be accessed by adding the following line to your source file(s).
#include <ntfs.h>
When compiling you must also link against libntfs. To do this, add -lntfs to the LIBS section of your application Makefile; for example:
LIBS := -lwiiuse -lbte -lntfs -lfat -logc -lm
For a more practical example of using NTFS in your application, see the included 'example' folder.
Credits
A big thanks to all the authors of NTFS-3G, of which this library makes use of. Thanks also to the following:
- Authors of libogc for providing the libraries framework
- Authors of libfat for laying the foundations
- rodries for his help and contributions (cache, bug fixes, etc)
Update History
August 19, 2009
- Inital release, based on NTFS-3G 2009.4.4AR.16