libntfs
libntfs | |
General | |
---|---|
Author(s) | Numerous |
Maintainer(s) | shareese, Dimok |
Contributor(s) | rodries |
Type | Ported Libraries |
Version | January 13, 2013 |
Licence | GNU GPL v2 |
Links | |
Download | |
Source |
libntfs is a port of the NTFS-3G driver to the Nintendo GameCube/Wii, modeled on the libfat interface.
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; However, in most situations (read: it is not 100% guaranteed) this is not required and the file system can be remounted without problem. In situations where there has been heavy disc activity prior to the crash or power loss it is recommended you let Windows replay the journal before remounting with libntfs in order to prevent possible data lose and/or corruption.
Unsupported
- Encryption, read/write support for encrypted files
- Security (will probably never be implemented, cripples 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, whenever libntfs encounters a symbolic link it will (transparently) resolve it first. The effect of this is that when you open a symbolic link you in instead open what it is linked to. Creation of symbolic links is still supported, however once created you cannot actually tell it apart from a standard hard link due to the transparent symbloic 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.
Getting the latest sources
To grab the latest and greatest copy of the sources just type:
svn checkout svn://svn.code.sf.net/p/libntfs-wii/code/trunk libntfs-wii
Compiling and Installing
Make sure you have devkitPPC and the latest libogc installed. Then from the sources root directory, 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.
Changelog
January 15, 2013
- Update/sync with NTFS-3G version 2013.1.13 see full change log on NTFS-3G.
- Fix bug where deleting a file / directory returned always success (0)
- Change make install to default to wii-install and seperated cube-install
- Change wii-install to copy files to $PORTLIBS path
- Remove change of locale on ntfsInit
February 15, 2012
- Update/sync with NTFS-3G version 2012.1.15 see full change log on NTFS-3G.
May 14, 2011
- Update/sync with NTFS-3G version 2011.4.12 see full change log on NTFS-3G.
January 25, 2011
- Update/sync with NTFS-3G version 2011.1.15 see full change log on NTFS-3G.
December 28, 2010
Lot's of changes which completed the lib. For full change log see the change log of libntfs in the WiiXplorer branches.
Here is a list of the main changes:
- Update to NTFS-3G version 2010.10.2
- Fix of the complete write functionality
- Fix corrupting partitions when writing
- Fixes in some read functions
- Fix of volume size determination
- Additional flag to ignore case sensitivity
- Lot's of small bug fixes
August 19, 2009
- Initial release, based on NTFS-3G 2009.4.4AR.16
Credits
A big thanks to all the authors of NTFS-3G] of which this library makes use of. Thanks also to the following: