[comp.binaries.mac] Macintosh Technical Notes - 246 Mixing HFS and C File I/O

bytebug@dhw68k.cts.com (Roger L. Long) (09/10/89)

[8/89 Macintosh Technical Notes - 246 Mixing HFS and C File I/O]

This Technical Note  discusses  the  problem  of  mixing  calls  to  the
Macintosh file system with calls to MPW C library file I/O routines.

---
(This file must be converted with BinHex 4.0)

:#941-M3f,R0TG!"6593K8dP8)3#3""TE!*!%#JT6593K!!%!!"TEFNaKG3%!N!J
#'e41,M)d0Lj0DAKTEQFJ5%C6)'&ZC#"$)%N[6`!$!*!$3Sld!!%!4rI+!%8Hj!"
)BAB$GJ%5!#3!!3#3!dIhj&G28N40380"!3#Jj[aaS5+HHJ#3"LS1!*!''G8!!!C
,!*!'4[S!$!$!!b!!!!)!%[jEq)pI`B3T$!&!0"'L4)S8!D6J8A&!3J")3(i%)%#
E!"6r`[d6*b#I!#-$MK4!-F#KJ)mK3hiXHI*K3M)I$3BB'[6%JiF'4bVpU!"!KJ#
3!*3#@4U8UY@%0l%U6IT"i&3!(6J"S!!!3`"Crq3"B*FfJ+jrm$ibA1Lc,J#k!#i
S!J!KB3!I*0-#m##BV6bhF1A1"B$JBq1X2N8B1!!Si3FM!S!**Uc@X0Z4rqibp'Y
ZJ-%"#ISd##d33)+%&K)Q'4)K`$p,"4XNE0edE1i9!4-b5%J@3'qb*8E)S'&$"`J
36G,J5H2Q$!JN4UD!#11'$)JK))bNB9-'4*)A6a+m-30LKTRJaSRl6K#J@p+%#34
!d-pr[rrq!2Vhd@Y8e"I!63F!N!$J&J'N8aXS!!J#)51K!)#E!3AXK%U&QM$f$cd
I9C!!%)5B'048JJXfk"%&ZX'!!J!fR"8!2""Q!Z%P%eCiBBCBE3K!Kife"N!8)`+
!L@iB[-J"!!iSd%3BBe"(aaYcS0&!M4akk-j(4!*!SJSB2%"&'@1Ji8BDBi6""JK
1[%&('A28H+11!I&)NSp!0[34'd8H#B!%+m6c`3C%P'&('@bm!8FCFS!`CTPRTVR
Q&(A!!FFEFY!K*`#A*(L6!#!!!0KV2J53!!f%MD!+i5#KiD$2&`R3-mNKN6c3""Y
cP,#)2-$88mBVGGJ6c30*m&V2%K$8)m-BPL6aJ"&k*'[!-fZmFFB(Z[dTR(`#-(!
6@4)-jeYV%KK%9K6eQ6CJ!)`)F)#llPjP93$CYLBZ@5[83iFF)F"Jc`Yjc20+V+'
-)8%)$dMaK4J8S$!&2*m%FFmACpb$"3McI*!!`cb2j!!202$GQpY0pXUAE#Ah3&&
2(%%mF!8C-Aa5Ed)1Q1XE[EYYkjX!UX(h'J#aj3b!b26k%l*m,lbD3$e",(1$-D$
38`l#)mcc`J`FXr$!%4+Fm--C"MalMaDJe'2!#MB)qr(4[KPb,"jLFM!,(fSmi)3
8%&c#L-@"!,)#"13X()Spd(6a3"Yri$'(2A!BS`SJ*3J3LkfikYT!Y)rN)FJ(E6a
`Kab`1!kjVI@ir-!3#[`KKK&2j(%j"24mmJ)pm"4aMa4cB#$21lU9I(-$GE"0&Vf
Xk8`@@5h8Tp3'm,lVI2-""TLEd%3hB*!!lm1[*M`!,N!KaaYLN!$AaK`Jh*%'(@K
mpdBEEG34D4KdT2'''b!)83BGGj44"[hBDFHGGd2S(FeX4LqeB#m!D$##(-S3KcV
XM`jXb!-,3%!'3b&+8B`Lhafi3`F36!N%GCK$HF6JT[3p+8TZQ&+93'#'mC6R2%r
B6RHq`d)AQJFp,RK1S3k9U%A*3B0SH!-&KBLq0*!!Vheck1!Dp!F(%&!("'fJMRI
3"cm2SU%-HGM1!N%`K[@*J6V8X3lqK%J')mE2$@2SB![*!i)&`Q'")N`Kr16R"[+
K!(hP1D'8U*5qri%J#%kB3K+qNi)F1ZU+)*KI"%(!KM4%N3jcR&mLk4I&k96R1YQ
4)3"['%-cZ#q0G#5I%DeB46aQ-8eZF)1E3##'mP5b$0k4*"j"-)F`Y+%m'+6I'XY
J5#TFFBYKf#,k&PLH"BCK$[-$BKD,5$j8UV+$V4bL'hJT`+(*"fI##i!3a20$1N`
3MeXFT5VEq)BkR,%m91aJ'm)!"r+e%RrkSemBD'L%*$#K#,6F9ah5#!)8,*!!$R@
3!--d[51',*SKPbK)33Sm+%6ZB&)lCT!!3KR-i)3kY+'Idi3P,"R+46@YUAmXr'6
mNPR)jdc"NH-*CJ5rqF[bL&1)NPV6"mGJc$GY*ccfa'F5jE$2$TiK$BH5TbiP5P'
,Y[&q!4dS+l1BR5FXbJd*l58D3XK54VQ8I12Fi$,48%T%8ZHJFPMR5(Aj[BXkp+"
26@K(fE#Q,YD"$33Y6`JhqN%b0*5&Fc!Q'D+UQrGBdcFa%&GXDL!b*3Kf5#,V`Q(
*)$*A(&B@)K['BC8KXQXFpK[h#N!&""X!$Q3@"j`&3[9#FX!@6)&-mb2$"#e)[c5
`CjBYl#B)hJJqmCA2UV4m!aX1T9SVPJFmM45$()+C"ML"J,8!pHJT2HVEKpD3!)e
cb%-5bp#'#BV"R#"BBKQDL-aE1M'&M(+$Q[)*2jHk!DaLTD-KTr#'#ES@"(NSjeS
rQXNb,M#0Ld4",58)JY25`3K3S&*#8e"9'Zk5PY*pdd@jLP8KDM@4l&Q$+XehbAR
'Y(c(K')B+UM*ULi3V'@BS&hKj)CUG,"5C#L[%qP![L5Uq+ZB5ZrmFUJp#4J2!*!
!K3d!GP'pi[f9!J%i`NQMb!D9mKHF9`A"1'pC*ZiBmD*J46!DdI#p-qNKM-d&EKU
%'m`m9-1GG6#$'6*S5#0JkVKiX#8Fb$2"q0CKYSa#V`aCq,RcP8'YjN0IEVhV"SZ
fXP(Vi5*AKj['$*B2$@K+haRZ0e[Xl['Qea8cSmTh[L"Le`aX##'L,hNqUHi2[[,
eSC`GQTdVb-(1H+ldRZqhDHXJ5S5'G%)C+MhT@@UCbh,)SLSE"G*JPLF-'a3Q9cX
iba*1QX(P1c8GhN5r$m,@K5l3RJGZR)E$bU'bK`9(Ml0*K#'[1BY`-'HEjH[-9Dj
cLFk0+INN1Fm$jh+MH8iI@[HReM1E`DjT6F%132hQFTpBK$3-lR"ccFP*hY6G6pf
SqbV)kq`B%JP[b0qKj$$"PQUa20dYck@N4,kC*M-0$$rdTpGjTR!AqBaL4'3Y[A[
J%'+CK(S'MarlCmJP-2'l8*5L&8GTa"+VFB%0I1!Ll6V0I50C`eQ-*Qh$4peeXqF
1L#l6E5m13[%'QjU$Z6%2$MX%N4hKX%rB0[B!-)SR6$14BV#$r%)ifqmarD+Me#i
FX,`[++d"`Xfp!kE@J'AlNQP+Z6DNr@JC8(3+XCD(dZ44NiJTG#*b$!&GB!V,YrH
qTq'qJ-mLe%Iq"V9ImThjqh5[C`JH'-jh$Y(fXGK[V!mcXcAL@"kP3mZ3!1BfV,Q
Bj6cR"+'Hk*cM`ELMhb3-BqdQ0$QqLZFE)SP0I&6PjRDhMYHiffdEk%V5(C&MI#l
'%padkf*hZ1"F-5f$H!IbNCqMFf8K3KFDEr*f*jMH16!+p#i([Pr5lfR%9((Ah5M
mCpim4$!(#r9%LcC0`m8'dDBY2`B!V("BXl"k#cJ$m%!*'$!f'!-0p2!'8d!2rM!
"mY!)D4-0[2)-G8!%%r!#9P!2)I!06M!aEF!VmY!'H[!",IJ&,rJ*1l!f2U0Mp%)
b0dBIhH!4!`)pcr-mrh'%qM%bfb-!He"02a-E%*!!!!%Q*3P3KCZh3$[JK$Sf!JR
3C(*3K3QJ!V4PHah8!b!J!P`!"eG3(N'`48KJ95+3!)8qpS3!B!*G1'KJU!*Q)&l
HCBCS#!G)!(p5m!CMX!C$3)K[S!4[8!CaU)9!8iF*)"lN)BP[)JIH3iK3X#m*X%Z
81'PQk!49`!4-N!#&1rL)&j!!!&@#+A3!KRh@"P53!!H,3MjQ'!0C1!fP'"ZR1!9
'm)U,`J4Q9)9d!)YPi)Y*P)9$F)Yr3Jq'N!!%p9!#e%)209!-p&!+(i!#mL!c3N1
(Gf%0!,!%!q!,!0!!64!%4c!E8$!EYI%26@%!CP"@!A5,G"J"#I!%8e!%F[#&93K
(Ed8(@@J1b#J"NCK6HHK,C5#*C8#+V8'(!*Q+Q3+'Ze44EB#3!2LKBaQ3!!#*8Kf
XD&(V-35$*SXJ%!-`N!#&mB#-&FQ3!+YBKC!!Gim2C!9%"C&bL)cdFMd6qBJRN!!
!+'!(E`"b#h8%pf-&ZS8#S#L+%f3#+5PjG-#5%`@4qYB!FC'3!$`i-kkKBc13!!$
kb!CP'"j6i&6dYSHf&'*F&(NVfC)@0C32D9&,QBdk4J%*m&lq"#Il#!)KB)B`X&"
0L)bRQ!![S!,(GBpR9LCNBRr@S3)[!*9dL"SpJi`)N!!!VeBHGHQ8MiJ$qHL@9JN
#CPKUbRCRC9PG)'!#VEL4(6P")Y#1k`-G8*)%6b!#CqQBX9%"9FL@9GP"F3N#F`N
#66L(1SB"B*LAHrNpMH+AKBKPJZQ)X8%!9GJcUJN!KYN!i`#6bSQ-'Q#61+Q6@$N
%L5*#+*!!QDNjNl&43-Mi!!P`KEb82QD)!b(C!0M3RGrC8LjJ"j3*!MP3RQKTLJN
3M,eS4PX!!eh3RLG!"8@!"94`!U6)R2%C'df3!!#kb*2rC82cee)60)C`i%hDeiN
8Tf3@aBY`mNh#5)`35JCXF!B3p`CV-*4Z&%&RLBa$-)%9U!8A@!maJ)*D)!q%i!'
[N!!(mY!1p'!1`X)V3D!1pr!*,R!2Eb!&(8!2la!Xd#!2rk!#$9!%K0-)pK!(,4!
Ym[!+,h#013Jb!VSp8IQ)%l#@l0'@Fr#@X6QA69JCakQ@H+QAM-+EJ[DA)"#Fb*L
FT+@Gdi1-&T!!!(#`,$[9PYrQ!K69PGQjTE&KK`4TN!$Y1@rd`kF4j+G1d*@J'3B
VJ*S5+DJ!%!+Eq%C5mU@&kN+Jb3ARjBkH+URDFjaGDJCM8*hPJ3+E5Kj,D@2(56c
)L!*8+CPAk9mqb3C!'BT--%&&'CC*DCD65SGGkTUd#TGbQ3*0+!6)L+DkZDCpH8@
&q+D$'DHT-DTd#T!!ZLK4h`D')jS(`DTMPNS%(IUKDh#*Bj!!LIM)S4lk"L$DRN%
jLS5TBl%aV&rkQXBUQmKUVC6+V'V+Pld*VAF(TmHCR,EjL)QjQ,3TR!$3T3R3Q@E
!NF(NN6%J!eNS!XM)K3Ck2`!QB*Nj3@B`"`Ud2[Id"%B`3A2jNXHj!j%CTT0CQ90
JDRE@6aflQ3i,X6m%QU*j85GNQL!J!k*DX+[CQ[9DV'0+P`f`"FM)QPABV2lDTY%
DR&H!M-4CVFJ)K%U4(d9)K0&cK"maGJNa!4PB"d)3#d#JJY%3"$c`!6UJJrCL-ke
!$aM`#-&b$9mM13p3"i%!"-Y3"AfMM-cSM'X!MG*B#K"!$6CSYe0J!MP!"T!!3!p
R%!S*B!HP`$Mf8!,hm!JX)$N%N!#L)0!&!R!,J'!lZ!-"H'!!Vq-i'I!!5%!'Rb!
&A'!2[c!%A2!&5K!&[()2Hm!(X&!--R!'1#!j$D!&TA!2Gr!e#8"#DiZPBfHe[4'
9*#!5I")9Y!!!jmN2!3!#!8!%#03m!2!$k6)5@!X[50JAmT)3#j!!Xk3j"UDTVpV
i%@83!b``!J$!!AeKX3R4!1LlXc%N!qclP-"a3!-J"&NNGh4(D(FAD,0%Ii"*3CI
hGjM#Afl@8I5M`*5QCb"eB+ER4k@(3mra"1cK9MrNPHm9`Ej'HI@(CHe(FJEP3R2
JAKhN9R$&5Vr@GV9&AGR&4!9XGhJh5efNN[`%"m&N5d+3!#M4kNHdpe4c!&5'PdK
2TALR5LA4ThhN8`C3NMlaied42!Gj9LDTTi!LJ`Z(*3`3H#m#i!p"m%brY"f@mMe
96(P[&9FFe89eT%rm0%p!M$jm@"lS1dYkP%*mT(d)0PdAP8jF9%iaV(6(*%*64%5
)Y-'G*&+Ke%YNBLCS-PjYBP2+-3-i-%%)LR)hC34[Y5C3!$pQiUJJF!D,+%TqA-L
f4aif98'3!$3Hfp&a3R4qc14%j%0dFTA%Pc4Vi6G2#QajQ2I!LG3SGL#@CM9$4("
j58!%JLGZ1pGLZQ91G!3#b#C#TeC1Z6aFGb!'GNFqI[45(A4Ikh0,h3&,KQ4fdPI
$F0Ga`mC[eK`'LIG"*&F(cNG69'a6Xh6(THaG'6C21i9PIT4%BICDL*44&44rZK9
b)J6%i)FTUZaXlac3eH&TAkQ5NpI333ai"GC&&pP21N"J5#GSh,&S1!GEjP4iKK3
%V*3'Cl"SME*dYM9+Xd3HeD&R#)a)r*c(KM3%B*P#+b9qU$4*La40-P!$0N$5K&D
*,DaiK,a159FHJkE3M4,"(h3'pMaFi-9,cm%%a`4"4fCa-!c(GMap0[aHXc4AMC+
+Edc5e4(&rNI-CbCjAAP`d+BEdrCM"m*C#C!!@3l!@4032F(MY3&3'[G4%043[SS
p%Q8!",`J[r3,!2B,!*!!-(M!9X+%6-*E"%HA8NGEaNC4aKdVc%BbhA6`$0AaR(M
@GdR"Cf!f0(c2N36XNA`5,-2E%Cd*E9eCa&bha"e0,Fmjk4fG9Nh93chb!3,+`4`
kN!!!d@&*eY(Di''S-&40j6)IhlXZia!!im#pLldZ3AJIp*%,h0hG(`%$5L-VY%)
jZE)V[I)V`6)Xc0KHBM)jd!)leT!!0R(`",TKB`[B,Grb*b+M&0i5&!``(!&3i!@
"i%S"*AY8*40dUaEe3PB`333C(MEd*1)&drYpBrlY'q%L(el`"5)qiL4HiLCqiLL
HiLUqiLcHiL*H6FF"!%rJiM4HicCHie!T-M0qiccHichH!$DJTHiV!rJJ[ae!!j,
p%H)#!1qE2Q#K$J#!"U*J%--a(1r,"I)E!%B`0&0Z64M!j$-!!&N1&$$3jAka$rX
3&"-`!3Qqj!GZi!T1%J`J#'eHjfpH%!p`&(IH,B43j`,3!(eqj`6!!!d`jh8qk!d
J#(!q(!03k)1`k(*1jhFq!)51i(IZ&`Z`!!@4kCZZk3(!kCrZkD!qkU*HkTeqkU'
1kU5ZkUDHkUkqkUrHkV!qkl*Hkkaqkl'1kl5ZklDHklkqklrHkjcZ&`MH,C*ZkF#
1i*3Z#!fJ'hGH!(0Hk)8!kAFH!(RZjiCHlA'ZlG4ZkGi1kH3GlZ)qlZ4HlZCqlZL
HlZTZ&Hp,"5&3%,KK[rr!#N21#'"3%,J3!!V`"D'5%&6!j$&!"[*l!9)Jf@9`%fc
qlf8J!q``"[1,$J#J!U9`%m0a"J$2"2)l!$!`0+0`(h-!m%53!2%1N!$Nfr,al`X
%`$%!(#%$(@p0I`$`8*!!m@l!mIHa#%`1!kKJj$Bff9pZmqq,!LN2)QE3mX-a#J"
2!U(L!3@["832!+m!m"`3+J3J#M4[6EX!m"3J[`5!'`c3mNGa$!$2!&U[#`#!!k4
!m3$!MHp,!&U[&Pe[%"X[$MI2$eV[$`%J"d3I!$C@"M"!$r*V!("3p633!02'pqc
`ph`3!+bJ,J`3!!A2pq3J[`M`)Qm2!$%3!&j`mp`JqB02")`I!)p`mp3J[`P!%*8
[!`'`#6I2$+42#!'J"TrI$$G2$2+V!&Y5qCHI$3![jXDK$`&J"S`[!%ha[KJJ[`a
`lj@2!3)3'h`2$FE2*kj!p!,J!Q#HpH'S!98I16T`ml!J[`eJ!J%!!F(r"6G2#[,
V!%&Hq55a"MG2#k&b!4X[!MPJ'l8J!1aI"M0!!+(b!-`!02-2!*UZ)2!p9S!'!-!
$J!AckrpTZJ83!2JH,`J9$J!A$!d&#$3DS!cJ"a#3!"J!!!e!!80!!i3"`!!#HJ2
Z33&C`!I%"rY[1-!!#RJ$2L!kf(mFB38D"%dR""TJ$)!!qip2b,mC#!#D`!I%"[[
2%8Jf#SJ&2L!R#"88`'L`!!Si"MiJ*N##FSm$8%!hm!%K`Ikc"`Q3!!IQJ3q)#%)
&",!a8T!!"lSq[JF)[#$e#i-!%!!mJJq)"lbJ%J!!*)!#DS)2f%6i`Xb,Jcb`&(a
!*`F"*-%%j)'`i!1#!5rS#3#!$+#!Zq!$AJbq!$)B!!8d"Km3#RK"EL!U+'!dq)"
))&4%!1cR!5JJ0rL!3%!6iS!Kb!22`3I%!CT3#c!*#RJBb%!P3!#DX!"+!!VB$`)
!'D!%'"!!4!!p!!#%J!)-!!M!&P)#HU!*H3%!F%mc-!"-!'()$M3K*Gb"!*!!m!P
$FU!*MBB$q)8T3"KbJe$aiDjK-KamYa!&rJRXj`L6SIILHc5!'jS!12J,PF!(*!,
Fm!f@`fKB"6iJ&H#'9Q!$rN)`m!'p`jm)I"``'Dk"$pK"rX4HJ)B-d!jm3%,!$HR
G2'5!JH!$8J*Z+!'a`#pN""m3(,b)#G!AN!$!,l`%(a!HK)S*S!B'`bqFFZm,&Li
XLY!*Nf%Vq)#JB#5DJP@B$22G,D3')h&k2F3!-!b%)6)BLF$J'2j#Cb!-3q$#!JF
!3!C'`f`J$(%"%Z`,5c!CNJ0K#!Z3!#"(D)R4m"d)3e5!"&AK6[4p"iN,)-(hF!K
RS!!S!!e`"pc$XB!*6+*CK!"TN3NJ39[J&J'J!0J!D4%HMSA%jJhY)[Jl5$cJ46J
!CF8$&+!!Z(`(+4d#J!V!!ZVL!K!!2#!Y6T!!aIJ'XH*M2!*T%HNYaJ,B&aqM&%L
,8@mafS%rB4Ll3&UN!+'L!V"%`iJ'dU*+V!!cd38BaMR3!(9!,U`!LFd)'%Br8"Y
&)Y$!IXM3,LD#fNJ0JFEf#ik2N4,84L!)0&4KCa3!Rk!f-S03%3!fhR08"E84''3
m#$%258)YU)hZMdNF41Rh(FZ!$XKj6-)29,d[jbh-)c8!$KB!!3+#TNF#")"j"!G
Dca9828d(!qbM$MKmHB%1q$mHZ!2mBj%cJ()2!P"!c(#3!0KHAZJ3'1$r$BFSB"p
h!!6)FJ@[mT8!!1#j$P,ab`Zq)!"S!-BA)5SN#Y"klk(bK3%!i!JU*!k3!&mBJ"`
-!""!)Yp"K83#@XmV0Vep8#'a3-DMLjA[!35!Gh%,@8(+ii8Bi1`0M3"J!36!,Aa
X6-)KYMbc)!+F*#9JII0,@@Q#[+F$l1--Z*!!#j!$9,h'ab"M!(*$6T5JkK8%+H!
IS8'SX!!&8!5-!BVRq2`M0i#2Z%%$M!)kk3AX)dK+H[51k5@&efFPLB(8%j!!FT,
+%FTE5!U!J`!3"J#!#"Lp*@N(+L38!!iG)"rkJ%RCq!4"KB3"+3p5XMa&f5)2NYK
$6[41!E5mJU!#ZTCIq!V`!I1jbS+3!#De!R)5%ShK)-L"RC!!%"k!@NJ)#'&K!3@
K83&DTDfd!(XK)I5'#b!,P&a#`!$R5@G`J'$j9cL!$2J)j)X$8%+Gd3%3B%,BIK(
2!3J!L!F!!!9'!!!:
---