NTFSにはファイル名禁止文字が沢山あるので、Mac OS XからWindowsにSMBで接続してファイル転送するとエラーになった。 が、最近同じことを試したら、なんと保存できる。FATのUSBメモリにも保存できる。いつの間に仕様変更したんだろう。 カーネルソースに詳細があります。
http://www.opensource.apple.com/source/xnu/xnu-1504.7.4/bsd/vfs/vfs_utfconv.c
/*
* Invalid NTFS filename characters are encodeded using the
* SFM (Services for Macintosh) private use Unicode characters.
*
* These should only be used for SMB, MSDOS or NTFS.
*
* Illegal NTFS Char SFM Unicode Char
* ----------------------------------------
* 0x01-0x1f 0xf001-0xf01f
* '"' 0xf020
* '*' 0xf021
* '/' 0xf022
* '<' 0xf023
* '>' 0xf024
* '?' 0xf025
* '\' 0xf026
* '|' 0xf027
* ' ' 0xf028 (Only if last char of the name)
* '.' 0xf029 (Only if last char of the name)
* ----------------------------------------
*
* Reference: http://support.microsoft.com/kb/q117258/
*/
なんと、旧Service for Machintoshの仕様に倣い、Unicodeの私用領域を使って無理矢理保存するんだな。 当然のことながら、Windows側では正常に表示できません。 というか、SFMがそんな仕様になってたとは知らなかった。