/* File: readalias.m Version: 1.1 Author: Damien Bobillot (damien.bobillot.2002_mkalias@m4x.org) Licence: GNU GPL Compatibility: Mac OS X 10.4 (may work on MacOS X 10.0) Print the orginal path of a Mac OS X alias. usage: readalias 05/08/2005 - 1.0 - First version 05/11/2006 - 1.1 - Compiled as Universal Binary */ #include #include #include int main(int argc, char* argv[]) { OSStatus err; if (argc != 2) { fprintf(stderr,"usage: readalias \n"); return 1; } // Create FSRef FSRef aliasRef; require_noerr(err = FSPathMakeRef((UInt8*)argv[1], &aliasRef, NULL), readError); // Check it file is an alias Boolean isAlias, isFolder; require_noerr(err = FSIsAliasFile(&aliasRef, &isAlias, &isFolder), readError); if(!isAlias) goto testAliasError; // Resolve alias file require_noerr(err = FSResolveAliasFile(&aliasRef, false, &isFolder, &isAlias), readError); // Print original path UInt8 originalPath[512]; require_noerr(err = FSRefMakePath(&aliasRef, originalPath, 512), printError); printf("%s\n", originalPath); return 0; readError: fprintf(stderr,"readalias: Cannot read alias file (%d)\n", (int)err); return 1; testAliasError: fprintf(stderr,"readalias: Not an alias\n"); return 1; printError: fprintf(stderr,"readalias: Cannot print orignal path (%d)\n", (int)err); return 1; }