¥»¸`Á¿z±q¤å¥ó¤¤Åª¨ú«H®§©M¦V¤å¥ó¼g¤J«H®§ªº¤º¸m®w¨ç¼Æ¡C 1¡B°ò¥»I/O¨ç¼Æ ¤@¨ÇI/O¨ç¼Æ¦b«e±ªº³¹¸`¤¤¤w¦³Á¿z¡A¦p - open¡J¤¹³\µ{§Ç³X°Ý¤å¥ó
- close¡J²×¤î¤å¥ó³X°Ý
- print¡J¤å¥ó¼g¤J¦r²Å¦ê
- write¡J¦V¤å¥ó¼g¤J®æ¦¡¤Æ«H®§
- printf¡J®æ¦¡¤Æ¦r²Å¦ê¨Ã¿é¥X¨ì¤å¥ó
³o¸Ì²³æ¦^ÅU¤@¤U¡A¦AÁ¿¤@¨Ç«e±¥¼´£¨ìªº¨ç¼Æ¡C 1)open¨ç¼Æ open¨ç¼Æ±N¤å¥óÅܶq»P¬Y¤å¥óÁp¨t°_¨Ó¡A´£¨Ñ³X°Ý¤å¥óªº±µ¤f¡A¨Ò¦p¡Jopen(MYVAR, "/u/file"); ¦pªG¤å¥ó¥´¶}¦¨¥\¡A«hªð¦^«D¹sÈ¡A§_«hªð¦^¹s¡C¯Ê¬Ù¦a¡Aopen¥´¶}¤å¥ó¥Î¥HŪ¨ú¨ä¤º®e¡AY·Q¥´¶}¤å¥ó¥H¼g¤J¤º®e¡A«h¦b¤å¥ó¦W«e¥[Ó¤j©ó¸¹¡Jopen(MYVAR, ">/u/file"); ¦V¤w¦³ªº¤å¥ó¥½§À²K¥[¤º®e¥Î¨âÓ¤j©ó¸¹¡Jopen(MYVAR, ">>/u/file"); Y·Q¥´¶}¤å¥ó§@¬°¼Æ¾Ú¾É¦Vªº©R¥O¡A«h¦b©R¥O«e¥[¤WºÞ¹D²Å(|)¡Jopen(MAIL, "|mail dave"); 2)¥Îopen«©w¦V¿é¤J ¥i¥H§â¥´¶}ªº¤å¥ó¥y¬`¥Î§@¦Vµ{§Ç¿é¤J¼Æ¾Úªº©R¥O¡A¤èªk¬O¦b©R¥O«á¥[ºÞ¹D²Å(|)¡A¦p¡J open(CAT, "cat file*|"); ¹ïopenªº½Õ¥Î¹B¦æ©R¥Ocat file* ¡A¦¹©R¥O³Ð«Ø¤@ÓÁ{®É¤å¥ó¡A³oÓ¤å¥óªº¤º®e¬O©Ò¦³¥Hfile¥´ÀYªº¤å¥óªº¤º®e³s±µ¦Ó¦¨¡A¦¹¤å¥ó¬Ý§@¿é¤J¤å¥ó¡A¥i¥Î¤å¥óÅܶqCAT³X°Ý¡A¦p¡J $input = ; ¤U±ªº¨Ò¤l¨Ï¥Î©R¥Owªº¿é¥X¨Ó¦C¥X·í«eµn¿ýªº©Ò¦³¥Î¤á¦W¡C 1 : #!/usr/local/bin/perl 2 : 3 : open (WOUT, "w|"); 4 : $time = <WOUT>; 5 : $time =~ s/^ *//; 6 : $time =~ s/ .*//; 7 : ; # skip headings line 8 : @users = ; 9 : close (WOUT); 10: foreach $user (@users) { 11: $user =~ s/ .*//; 12: } 13: print ("Current time: $time"); 14: print ("Users logged on:\n"); 15: $prevuser = ""; 16: foreach $user (sort @users) { 17: if ($user ne $prevuser) { 18: print ("\t$user"); 19: $prevuser = $user; 20: } 21: } µ²ªG¿é¥X¦p¤U¡J Current time: 4:25pm Users logged on: dave kilroy root zarquon w©R¥O¦C¥X·í«e®É¶¡¡B¨t²Ît¸ü©Mµn¿ýªº¥Î¤á¡A¥H¤Î¨CӥΤ᪺§@·~®É¶¡©M·í«e¹B¦æªº©R¥O¡A¦p¡J 4:25pm up 1 day, 6:37, 6 users, load average: 0.79, 0.36, 0.28
User tty login@ idle JCPU PCPU what
dave ttyp0 2:26pm 27 3 w
kilroy ttyp1 9:01am 2:27 1:04 11 -csh
kilroy ttyp2 9:02am 43 1:46 27 rn
root ttyp3 4:22pm 2 -csh
zarquon ttyp4 1:26pm 4 43 16 cc myprog.c
kilroy ttyp5 9:03am 2:14 48 /usr/games/hack
¤W¨Ò¤¤±qw©R¥Oªº¿é¥X¤¤¨ú¥X©Ò»Ýªº«H®§¡J·í«e®É¶¡©Mµn¿ýªº¥Î¤á¦W¡C²Ä3¦æ¹B¦æw©R¥O¡A¦¹³B¹ïopenªº½Õ¥Î«ü©wwªº¿é¥X¥Î§@µ{§Çªº¿é¤J¡A¥Î¤å¥óÅܶqWOUT¨Ó³X°Ý¸Ó¿é¤J¡C²Ä4¦æÅª¨ú²Ä¤@¦æ«H®§¡A§Y¡J 4:25pm up 1 day, 6:37, 6 users, load average: 0.79, 0.36, 0.28 ±µ¤U¨Óªº¨â¦æ±q³o¦æ¤¤©â¨ú¥X®É¶¡¡Cº¥ý¡A²Ä5¦æ§R°£°_©lªºªÅ®æ¡AµM«á²Ä6¦æ§R¥h°£®É¶¡©Mµ²§À´«¦æ²Å¤§¶¡ªº©Ò¦³¦r²Å¡A¦s¤JÅܶq$time¡C ²Ä7¦æ±qWOUTŪ¨ú²Ä¤G¦æ¡A³o¦æ¤¤µL¦³¥Î«H®§¡A¬G¤£§@³B²z¡C²Ä8¦æ§â³Ñ¤Uªº¦æ½áµ¹¼Æ²Õ@users¡AµM«á²Ä9¦æÃö³¬WOUT¡A²×¤î¹B¦æw©R¥Oªº¶iµ{¡C @users¤¤ªº¨CÓ¤¸¯À³£¬O¤@¦æ¥Î¤á«H®§¡A¦]¬°¥»µ{§Ç¥u»Ýn¨C¦æªº²Ä¤@Ó³æµü¡A§Y¥Î¤á¦W¡A¬G10~12¦æ¥h±¼°£´«¦æ²Å¥~ªº¨ä¥¦¦r²Å¡A³o¤@´`Àôµ²§ô«á¡A@users¤¤¥u³Ñ¤U¥Î¤á¦Wªº¦Cªí¡C ²Ä13¦æ¿é¥X¦s¶J¦b$time¤¤ªº®É¶¡¡Aª`·N³o®Éprint¤£»Ýn¥[¤W´«¦æ²Å¡A¦]¬°$time¤¤¦³¡C16~21¦æ¹ï@users¤¤ªº¥Î¤á¦W±Æ§Ç¨Ã¿é¥X¡C¦]¬°¦P¤@ӥΤá¥i¥H¦h¦¸µn¿ý¡A©Ò¥H¥Î$preuser¦s¶J¿é¥Xªº³Ì«á¤@ӥΤá¦W¡A¤U¦¸¿é¥X¼Æ²Õ¤¸¯À$user®É¡A¦pªG¨ä»P$preser¬Ûµ¥¡A«h¤£¿é¥X¡C 3)¤å¥ó«©w¦V ³\¦hUNIX shell¥i¥H§â¼Ð·Ç¿é¥X¤å¥ó(STDOUT)©M¼Ð·Ç¿ù»~¤å¥ó(STDERR)³£«©w¦V¨ì¦P¤@Ó¤å¥ó¡A¨Ò¦p¦bBourne Shell¡]sh¡^¤¤¡A©R¥O $ foo > file1 2>&1 ¹B¦æ©R¥Ofoo¨Ã§â¿é¥X¨ì¼Ð·Ç¿é¥X¤å¥ó©M¼Ð·Ç¿ù»~¤å¥óªº¤º®e¦s¶J¨ì¤å¥ófile1¤¤¡C¤U±¬O¥ÎPerl¹ê²{³o¤@¥\¯àªº¨Ò¤l¡J 1: #!/usr/local/bin/perl 2: 3: open (STDOUT, ">file1") || die ("open STDOUT failed"); 4: open (STDERR, ">&STDOUT") || die ("open STDERR failed"); 5: print STDOUT ("line 1\n"); 6: print STDERR ("line 2\n"); 7: close (STDOUT); 8: close (STDERR); ¹B¦æ«á¡A¤å¥ófile1¤¤ªº¤º®e¬°¡J line 2 line 1 ¥i¥H¬Ý¨ì¡A³o¨â¦æ¨Ã¥¼«ö§ÚÌ·Q¶Hªº¶¶§Ç¦s¶J¡A¬°¤°¤\©O¡H§Ų́ӤÀªR¤@¤U³o¬qµ{§Ç¡C ²Ä3¦æ«©w¦V¼Ð·Ç¿é¥X¤å¥ó¡A¤èªk¬O¥´¶}¤å¥ófile1±N¥¦»P¤å¥óÅܶqSTDOUTÃöÁp¡A³o¤]Ãö³¬¤F¼Ð·Ç¿é¥X¤å¥ó¡C²Ä4¦æ«©w¦V¼Ð·Ç¿ù»~¤å¥ó¡A°Ñ¼Æ>&STDOUT§i¶DPerl¸ÑÄÀ¾¹¨Ï¥Î¤w¥´¶}¨Ã»PSTDOUTÃöÁpªº¤å¥ó¡A§Y¤å¥óÅܶqSTDERR«ü¦V»PSTDOUT¬Û¦Pªº¤å¥ó¡C²Ä5¡B6¦æ¤À§O¦VSTDOUT©MSTDERR¼g¤J¼Æ¾Ú¡A¦]¬°³o¨âÓ¤å¥óÅܶq«ü¦V¦P¤@Ó¤å¥ó¡A¬G¨â¦æ¦r²Å¦ê§¡¼g¨ì¤å¥ófile1¤¤¡A¦ý¶¶§Ç«o¬O¿ù»~ªº¡A«ç¤\¦^¨Æ©O¡H °ÝÃD¦b©óUNIX¹ï¿é¥Xªº³B²z¤W¡C·í¨Ï¥Îprint¡]©Î¨ä¥¦¨ç¼Æ¡^¼g¤JSTDOUTµ¥¤å¥ó®É¡AUNIX¾Þ§@¨t²Î¯u¥¿©Ò°µªº¬O§â¼Æ¾Ú«þ¨©¨ì¤@¤ù¯S®íªº¤º¦s§Y½w¨R°Ï¤¤¡A±µ¤U¨Óªº¿é¥X¾Þ§@Ä~Äò¼g¤J½w¨R°Ïª½¨ì¼gº¡¡A·í½w¨R°Ïº¡¤F¡A´N§â¥þ³¡¼Æ¾Ú¹ê»Ú¿é¥X¡C¶H³o¼Ë¥ý¼g¤J½w¨R°Ï¦A§â¾ãÓ½w¨R°Ïªº¤º®e¿é¥X¤ñ¨C¦¸³£¹ê»Ú¿é¥X©Òªá¶Oªº®É¶¡n¤Ö±o¦h¡A¦]¬°¤@¯ë¨Ó»¡¡AI/O¤ñ¤º¦s¾Þ§@ºC±o¦h¡C µ{§Çµ²§ô®É¡A¥ô¦ó«DªÅªº½w¨R°Ï³£³Q¿é¥X¡AµM¦Ó¡A¨t²Î¬°STDOUT©MSTDERR¤À§OºûÅ@¤@¤ù½w¨R°Ï¡A¨Ã¥B¥ý¿é¥XSTDERRªº¤º®e¡A¦]¦¹¦s¶J¦bSTDERRªº½w¨R°Ï¤¤ªº¤º®eline 2¥X²{¦b¦s¶J¦bSTDOUTªº½w¨R°Ï¤¤ªº¤º®eline 1¤§«e¡C ¬°¤F¸Ñ¨M³oÓ°ÝÃD¡A¥i¥H§i¶DPerl¸ÑÄÀ¾¹¤£¹ï¤å¥ó¨Ï¥Î½w¨R¡A¤èªk¬°¡J 1¡B¥Îselect¨ç¼Æ¿ï¾Ü¤å¥ó 2¡B§âÈ1½áµ¹¨t²ÎÅܶq$| ¨t²ÎÅܶq$|«ü©w¤å¥ó¬O§_¶i¦æ½w¨R¦Ó¤£ºÞ¨ä¬O§_À³¸Ó¨Ï¥Î½w¨R¡C¦pªG$|¬°«D¹sÈ«h¤£¨Ï¥Î½w¨R¡C$|»P¨t²ÎÅܶq$~©M$^¨ó¦P¤u§@¡A·í¥¼½Õ¥Îselect¨ç¼Æ®É¡A$|¼vÅT·í«e¯Ê¬Ù¤å¥ó¡C¤U¨Ò«Oµý¤F¿é¥Xªº¦¸§Ç¡J 1 : #!/usr/local/bin/perl 2 : 3 : open (STDOUT, ">file1") || die ("open STDOUT failed"); 4 : open (STDERR, ">&STDOUT") || die ("open STDERR failed"); 5 : $| = 1; 6 : select (STDERR); 7 : $| = 1; 8 : print STDOUT ("line 1\n"); 9 : print STDERR ("line 2\n"); 10: close (STDOUT); 11: close (STDERR); µ{§Ç¹B¦æ«á¡A¤å¥ófile1¤¤¤º®e¬°¡J line 1 line 2 ²Ä5¦æ±N$|½á¦¨1¡A§i¶DPerl¸ÑÄÀ¾¹·í«e¯Ê¬Ù¤å¥ó¤£¶i¦æ½w¨R¡A¦]¬°¥¼½Õ¥Îselect¡A·í«eªº¯Ê¬Ù¤å¥ó¬°«©w¦V¨ì¤å¥ófile1ªºSTDOUT¡C²Ä6¦æ±N·í«e¯Ê¬Ù¤å¥ó³]¬°STDERR¡A²Ä7¦æ¤S³]¸m$|¬°1¡AÃö±¼¤F«©w¦V¨ìfile1ªº¼Ð·Ç¿ù»~¤å¥óªº½w¨R¡C¥Ñ©óSTDOUT©MSTDERRªº½w¨R§¡³QÃö±¼¡A¦V¨äªº¿é¥X¥ß¨è³Q¼g¨ì¤å¥ó¤¤¡A¦]¦¹line 1¥X²{¦b²Ä¤@¦æ¡C 4)«ü©wŪ¼gÅv ¥´¶}¤@Ó¬J¥iŪ¤S¥i¼gªº¤å¥ó¤èªk¬O¦b¤å¥ó¦W«e¥[¤W"+>"¡A¦p¤U¡J open (READWRITE, "+>file1"); ¦¹»y¥y¥´¶}¬J¥iŪ¤S¥i¼gªº¤å¥ófile1¡A§Y¥i¥H«¼g¨ä¤¤ªº¤º®e¡C¤å¥óŪ¼g¾Þ§@³Ì¦n»P®w¨ç¼Æseek©Mtell¤@°_¨Ï¥Î¡A³o¼Ë¥i¥H¸õ¨ì¤å¥ó¥ô¦ó¤@ÂI¡C ª`¡J¤]¥i¥Î«eºó"+<"Ö¸¶¨¿É¶ÁдȨÏÞ¡£ 5)close¨ç¼Æ ¥Î©óÃö³¬¥´¶}ªº¤å¥ó¡C·í¥ÎcloseÃö³¬ºÞ¹D¡A§Y«©w¦Vªº©R¥O®É¡Aµ{§Çµ¥«Ý«©w¦Vªº©R¥Oµ²§ô¡A¦p¡J open (MYPIPE, "cat file*|"); close (MYPIPE); ·íÃö³¬¦¹¤å¥óÅܶq®É¡Aµ{§Ç¼È°±¹B¦æ¡Aª½¨ì©R¥Ocat file*¹B¦æ§¹²¦¡C 6)print, printf©Mwrite¨ç¼Æ print¬O³o¤TÓ¨ç¼Æ¤¤³Ì²³æªº¡A¥¦¦V«ü©wªº¤å¥ó¿é¥X¡A¦pªG¥¼«ü©w¡A«h¿é¥X¨ì·í«e¯Ê¬Ù¤å¥ó¤¤¡A¦p¡J print ("Hello, there!\n"); print OUTFILE ("Hello, there!\n"); ²Ä¤@¥y¿é¥X¨ì·í«e¯Ê¬Ù¤å¥ó¤¤¡AY¥¼½Õ¥Îselect¡A«h¬°STDOUT¡C²Ä¤G¥y¿é¥X¨ì¥Ñ¤å¥óÅܶqOUTFILE«ü©wªº¤å¥ó¤¤¡C printf¨ç¼Æ¥ý®æ¦¡¤Æ¦r²Å¦ê¦A¿é¥X¨ì«ü©w¤å¥ó©Î·í«e¯Ê¬Ù¤å¥ó¤¤¡A¦p¡J printf OUTFILE (¡§You owe me %8.2f", $owing); ¦¹»y¥y¨ú¥XÅܶq$owingªºÈ¨Ã´À´«±¼¦ê¤¤ªº%8.2f¡A%8.2f¬O°ì®æ¦¡ªº¨Ò¤l¡A§â$owingªºÈ¬Ý§@¯BÂI¼Æ¡C write¨ç¼Æ¨Ï¥Î¿é¥X®æ¦¡§â«H®§¿é¥X¨ì¤å¥ó¤¤¡A¦p¡J select (OUTFILE); $~ = "MYFORMAT"; write; Ãö©óprintf©Mwrite¡A¸Ô¨£¡m²Äx³¹ ®æ¦¡¤Æ¿é¥X¡n¡C 7)select¨ç¼Æ select¨ç¼Æ±N³q¹L°Ñ¼Æ¶Ç»¼ªº¤å¥óÅܶq«ü©w¬°·sªº·í«e¯Ê¬Ù¤å¥ó¡A¦p¡J select (MYFILE); ³o¼Ë¡AMYFILE´N¦¨¤F·í«e¯Ê¬Ù¤å¥ó¡A·í¹ïprint¡Bwrite©Mprintfªº½Õ¥Î¥¼«ü©w¤å¥ó®É¡A´N¿é¥X¨ìMYFILE¤¤¡C 8)eof¨ç¼Æ eof¨ç¼Æ¬d¬Ý³Ì«á¤@¦¸Åª¤å¥ó¾Þ§@¬O§_¬°¤å¥ó³Ì«á¤@Ó°O¿ý¡A¦pªG¬O¡A«hªð¦^«D¹sÈ¡A¦pªG¤å¥óÁÙ¦³¤º®e¡Aªð¦^¹s¡C ¤@¯ë±¡ªp¤U¡A¹ïeofªº½Õ¥Î¤£¥[¬A¸¹¡A¦]¬°eof©Meof()¬Oµ¥®Äªº¡A¦ý»P<>¾Þ§@²Å¤@°_¨Ï¥Î®É¡Aeof©Meof()´N¤£¦P¤F¡C²{¦b§Ų́ӳЫبâÓ¤å¥ó¡A¤À§O¥s°µfile1©Mfile2¡Cfile1ªº¤º®e¬°¡J This is a line from the first file. Here is the last line of the first file. file2ªº¤º®e¬°¡J This is a line from the second and last file. Here is the last line of the last file. ¤U±´N¨Ó¬Ý¤@¤Ueof©Meof()ªº°Ï§O¡A²Ä¤@Óµ{§Ç¬°¡J 1: #!/usr/local/bin/perl 2: 3: while ($line = <>) { 4: print ($line); 5: if (eof) { 6: print ("-- end of current file --\n"); 7: } 8: } ¹B¦æµ²ªG¦p¤U¡J $ program file1 file2 This is a line from the first file. Here is the last line of the first file. -- end of current file -- This is a line from the second and last file. Here is the last line of the last file. -- end of current file -- $ ¤U±§âeof§ï¬°eof()¡A²Ä¤GÓµ{§Ç¬°¡J 1: #!/usr/local/bin/perl 2: 3: while ($line = <>) { 4: print ($line); 5: if (eof()) { 6: print ("-- end of output --\n"); 7: } 8: } ¹B¦æµ²ªG¦p¤U¡J $ program file1 file2 This is a line from the first file. Here is the last line of the first file. This is a line from the second and last file. Here is the last line of the last file. -- end of output --$ ³o®É¡A¥u¦³©Ò¦³¤å¥ó³£Åª¹L¤F¡Aeof()¤~ªð¦^¯u¡A¦pªG¥u¬O¦hÓ¤å¥ó¤¤«e´XÓªº¥½§À¡Aªð¦^Ȭ°°²¡A¦]¬°ÁÙ¦³nŪ¨úªº¿é¤J¡C 9)¶¡±µ¤å¥óÅܶq ¹ï©ó¤Wz¦U¨ç¼Æopen, close, print, printf, write, select©Meof¡A³£¥i¥H¥Î²³æÅܶq¨Ó¥N´À¤å¥óÅܶq¡A³o®É¡A²³æÅܶq¤¤©Ò¦s¶Jªº¦r²Å¦ê´N³Q¬Ý§@¤å¥óÅܶq¦W¡A¤U±´N¬O³o¼Ë¤@Ó¨Ò¤l¡A¦¹¨Ò«Ü²³æ¡A´N¤£¸ÑÄÀ¤F¡C»Ýn«ü¥Xªº¬O¡A¨ç¼Æopen, close, write, select©MeofÁÙ¤¹³\¥Îªí¹F¦¡¨Ó´À¥N¤å¥óÅܶq¡Aªí¹F¦¡ªºÈ¥²¶·¬O¦r²Å¦ê¡A³Q¥Î§@¤å¥óÅܶq¦W¡C 1: #!/usr/local/bin/perl 2: 3: &open_file("INFILE", "", "file1"); 4: &open_file("OUTFILE", ">", "file2"); 5: while ($line = &read_from_file("INFILE")) { 6: &print_to_file("OUTFILE", $line); 7: } 8: 9: sub open_file { 10: local ($filevar, $filemode, $filename) = @_; 11: 12: open ($filevar, $filemode . $filename) || 13: die ("Can't open $filename"); 14: } 15: sub read_from_file { 16: local ($filevar) = @_; 17: 18: <$filevar>; 19: } 20: sub print_to_file { 21: local ($filevar, $line) = @_; 22: 23: print $filevar ($line); 24: } 2¡B¸õ¹L©M«Åª¼Æ¾Ú| ¨ç¼Æ¦W | seek | | ½Õ¥Î»yªk | seek (filevar, distance, relative_to); | | ¸Ñ»¡ | ¦b¤å¥ó¤¤¦V«e/«á²¾°Ê¡A¦³¤TӰѼơJ 1¡Bfilevar¡A¤å¥óÅܶq 2¡Bdistance¡A²¾°Êªº¦r¸`¼Æ¡A¥¿¼Æ¦V«e²¾°Ê¡At¼Æ©¹¦^²¾°Ê 3¡Breletive_to¡AÈ¥i¬°0¡B1©Î2¡C¬°0®É¡A±q¤å¥óÀY¶}©l²¾°Ê¡A¬°1®É¡A¬Û¹ï©ó·í«e¦ì¸m¡]±NnŪªº¤U¤@¦æ¡^²¾°Ê¡A¬°2®É¡A¬Û¹ï©ó¤å¥ó¥½§À²¾°Ê¡C ¹B¦æ¦¨¥\ªð¦^¯u¡]«D¹sÈ¡^¡A¥¢±Ñ«hªð¦^¹s¡A±`»Ptell¨ç¼Æ¦X¥Î¡C |
| ¨ç¼Æ¦W | tell | | ½Õ¥Î»yªk | tell (filevar); | | ¸Ñ»¡ | ªð¦^±q¤å¥óÀY¨ì·í«e¦ì¸mªº¶ZÂ÷¡C ª`·N¡J 1¡Bseek©Mtell¤£¯à¥Î©ó«ü¦VºÞ¹Dªº¤å¥óÅܶq¡C 2¡Bseek©Mtell¤¤¤å¥óÅܶq°Ñ¼Æ¥i¨Ï¥Îªí¹F¦¡¡C |
| ¨ç¼Æ¦W | read | | ½Õ¥Î»yªk | read (filevar, result, length, skipval); | | ¸Ñ»¡ | read¨ç¼Æ³]p±o»PUNIXªºfread¨ç¼Æµ¥®Ä¡A¥i¥HŪ¨ú¥ô·Nªø«×ªº¦r²Å¡]¦r¸`¡^¦s¤J¤@Ó²³æÅܶq¡C¨ä°Ñ¼Æ¦³¥|Ó¡J 1¡Bfilevar¡J¤å¥óÅܶq 2¡Bresult¡J¦s¶Jµ²ªGªºÂ²³æÅܶq¡]©Î¼Æ²Õ¤¸¯À¡^ 3¡Blength¡JŪ¨úªº¦r¸`¼Æ 4¡Bskipval¡J¥i¿ï¶µ¡A«ü©wŪ¤å¥ó¤§«e¸õ¹Lªº¦r¸`¼Æ¡C ªð¦^Ȭ°¹ê»ÚŪ¨úªº¦r¸`¼Æ¡A¦pªG¤w¨ì¤F¤å¥ó¥½§À¡A«hªð¦^¹s¡A¦pªG¥X¿ù¡A«hªð¦^ªÅ¦ê¡C |
| ¨ç¼Æ¦W | sysread | | ½Õ¥Î»yªk | sysread (filevar, result, length, skipval); | | ¸Ñ»¡ | §ó§ÖªºÅª¨ú¼Æ¾Ú¡A»PUNIX¨ç¼Æreadµ¥®Ä¡A°Ñ¼Æ»Pread¬Û¦P¡C |
| ¨ç¼Æ¦W | syswrite | | ½Õ¥Î»yªk | syswrite (filevar, data, length, skipval); | | ¸Ñ»¡ | §ó§Öªº¼g¤J¼Æ¾Ú¡A»PUNIX¨ç¼Æwriteµ¥®Ä¡A°Ñ¼Æ¡J 1¡Bfilevar¡J±Nn¼g¤Jªº¤å¥ó 2¡Bdata¡J¦s¶Jn¼g¤J¼Æ¾ÚªºÅܶq 3¡Blength¡Jn¼g¤Jªº¦r¸`¼Æ 4¡Bskipval¼g¾Þ§@¤§«e¸õ¹Lªº¦r¸`¼Æ¡C |
| ¨ç¼Æ¦W | getc | | ½Õ¥Î»yªk | $char = getc (infile); | | ¸Ñ»¡ | ±q¤å¥ó¤¤Åª¨ú³æÓ¦r²Å¡C |
| ¨ç¼Æ¦W | binmode | | ½Õ¥Î»yªk | binmode (filevar); | | ¸Ñ»¡ | ·í§Aªº¨t²Î¡]¦pÃþDOS¨t²Î¡^¹ï¤å¥»¤å¥ó©M¤G¶i»s¤å¥ó¦³©Ò°Ï§O®É¨Ï¥Î¡C¥²¶·¦b¥´¶}¤å¥ó«á¡BŪ¨ú¤å¥ó«e¨Ï¥Î¡C |
|
1¡B¤å¥ó«©w¦ì¨ç¼Æ| ¨ç¼Æ¦W | rename | | ½Õ¥Î»yªk | rename (oldname, newname); | | ¸Ñ»¡ | §ïÅܤå¥ó¦W©Î²¾°Ê¨ì¥t¤@ӥؿý¤¤¡A°Ñ¼Æ¥i¬°¦r²Å¦ê©Îªí¹F¦¡¡C |
| ¨ç¼Æ¦W | unlink | | ½Õ¥Î»yªk | num = unlink (filelist); | | ¸Ñ»¡ | §R°£¤å¥ó¡C°Ñ¼Æ¬°¤å¥ó¦W¦Cªí¡Aªð¦^Ȭ°¹ê»Ú§R°£ªº¤å¥ó¼Æ¥Ø¡C ¦¹¨ç¼Æ¤§©Ò¥H¥sunlink¦Ó¤£¥sdelete¬O¦]¬°¥¦¹ê»Ú©Ò°µªº¬O§R°£¤å¥óªºÃì±µ¡C | 2¡BÃì±µ©M²Å¸¹Ãì±µ¨ç¼Æ| ¨ç¼Æ¦W | link | | ½Õ¥Î»yªk | link (newlink, file); | | ¸Ñ»¡ | ³Ð«Ø²{¦³¤å¥óªºÃì±µ--µwÃì±µ¡Afile¬O³QÃì±µªº¤å¥ó¡Anewlink¬O³Q³Ð«ØªºÃì±µ¡C ¦¨¥\ªð¦^¯u¡A¥¢±Ñªð¦^°²¡C ·í§R°£³o¨âÓÃì±µ¤¤ªº¤@ӮɡAÁÙ¥i¥H¥Î¥t¤@Ó¨Ó³X°Ý¸Ó¤å¥ó¡C |
| ¨ç¼Æ¦W | symlink | | ½Õ¥Î»yªk | symlink (newlink, file); | | ¸Ñ»¡ | ³Ð«Ø²{¦³¤å¥óªº²Å¸¹Ãì±µ¡A§Y«ü¦V¤å¥ó¦W¡A¦Ó¤£¬O«ü¦V¤å¥ó¥»¨¡C°Ñ¼Æ©Mªð¦^ȦP¤W¡C ·íì¤å¥ó³Q§R°£¡]¦p¡J³Qunlinke¨ç¼Æ§R°£¡^¡A«h³Q³Ð«ØÃì±µ¤£¥i¥Î¡A°£«D¦A³Ð«Ø¤@Ó»Pì³QÃì±µªº¤å¥ó¦P¦Wªº¤å¥ó¡C |
| ¨ç¼Æ¦W | readlink | | ½Õ¥Î»yªk | filename = readlink (linkname); | | ¸Ñ»¡ | ¦pªGlinkname¬°²Å¸¹Ãì±µ¤å¥ó¡Aªð¦^¨ä¹ê»Ú«ü¦Vªº¤å¥ó¡C§_«hªð¦^ªÅ¦ê¡C | 3¡B¤å¥ó³\¥iÅv¨ç¼Æ| ¨ç¼Æ¦W | chmod | | ½Õ¥Î»yªk | chmod (permissions, filelist); | | ¸Ñ»¡ | §ïÅܤå¥óªº³X°ÝÅv¡C°Ñ¼Æ¬°¡J 1¡Bpermissions¬°±Nn³]¸mªºÅv¡A¨ä§t¸q¨£¤Wzmkdir¤¤Åvªí 2¡Bfilelist¬°±ý§ïÅÜÅvªº¤å¥ó¦Cªí |
| ¨ç¼Æ¦W | chown | | ½Õ¥Î»yªk | chown (userid, groupid, filelist); | | ¸Ñ»¡ | §ïÅܤå¥óªºÄÝ¥D¡A¦³¤TӰѼơJ 1¡Buserid¡J·sÄÝ¥Dªº(¼Æ¦r)ID¸¹ 2¡Bgroupid¡J·sªº²Õ(¼Æ¦r)ID¸¹¡A-1¬°«O¯dì²Õ 3¡Bfilelist¡J±ý§ïÅÜÄÝ¥Dªº¤å¥ó¦Cªí |
| ¨ç¼Æ¦W | umask | | ½Õ¥Î»yªk | oldmaskval = umask (maskval); | | ¸Ñ»¡ | ³]¸m¤å¥ó³X°ÝÅv±»½X¡Aªð¦^Ȭ°·í«e±»½X¡C | 4¡B¨ä¥¦ÄÝ©Ê¨ç¼Æ| ¨ç¼Æ¦W | truncate | | ½Õ¥Î»yªk | truncate (filename, length); | | ¸Ñ»¡ | ±N¤å¥óªºªø«×´î¤Ö¨ìlength¦r¸`¡C¦pªG¤å¥óªø«×¤w¸g¤p©ólength¡A«h¤£°µ¥ô¦ó¨Æ¡C¨ä¤¤filename¥i¥H¬°¤å¥ó¦W¡A¤]¥i¥H¬°¤å¥óÅܶq |
| ¨ç¼Æ¦W | stat | | ½Õ¥Î»yªk | stat (file); | | ¸Ñ»¡ | Àò¨ú¤å¥óª¬ºA¡C°Ñ¼Æfile¥i¬°¤å¥ó¦W¤]¥i¬°¤å¥óÅܶq¡Cªð¦^¦Cªí¤¸¯À¨Ì¦¸¬°¡J - ¤å¥ó©Ò¦b³]³Æ
- ¤º³¡°Ñ¦Ò¸¹(inode)
- ³X°ÝÅv
- µwÃì±µ¼Æ
- ÄÝ¥Dªº(¼Æ¦r)ID
- ©ÒÄݲժº(¼Æ¦r)ID
- ³]³ÆÃþ«¬¡]¦pªGfile¬O³]³Æªº¸Ü¡^
- ¤å¥ó¤j¤p¡]¦r¸`¼Æ¡^
- ³Ì«á³X°Ý®É¶¡
- ³Ì«á×§ï®É¶¡³Ì«á§ïÅܪ¬ºA®É¶¡
- I/O¾Þ§@³Ì¨Î¶ô¤j¤p
- ¤À°tµ¹¸Ó¤å¥óªº¶ô¼Æ
|
| ¨ç¼Æ¦W | lstat | | ½Õ¥Î»yªk | lstat (file); | | ¸Ñ»¡ | »PstatÃþ¦ü¡A°Ï§O¬O±Nfile¬Ý§@¬O²Å¸¹Ãì±µ¡C |
| ¨ç¼Æ¦W | time | | ½Õ¥Î»yªk | currtime = time(); | | ¸Ñ»¡ | ªð¦^±q1970¦~1¤ë1¤é°_²Öp¬í¼Æ¡C |
| ¨ç¼Æ¦W | gmtime | | ½Õ¥Î»yªk | timelist = gmtime (timeval); | | ¸Ñ»¡ | ±N¥Ñtime, stat ©Î -A ©M -M ¤å¥ó´ú¸Õ¾Þ§@²Åªð¦^ªº®É¶¡Âà´«¦¨®æªL«Âªv®É¶¡¡Cªð¦^¦Cªí¤¸¯À¨Ì¦¸¬°¡J - ¬í
- ¤ÀÄÁ
- ¤p®É¡A0~23
- ¤é´Á
- ¤ë¥÷¡A0~11(¤@¤ë~¤Q¤G¤ë)
- ¦~¥÷
- ¬P´Á¡A0~6(©P¤é~©P¤»)
- ¤@¦~¤¤ªº¤é´Á¡A0~364
- ¬O§_®L¥O®Éªº¼Ð§Ó
¸Ô¨£UNIXªºgmtimeÀ°§U¡C
|
| ¨ç¼Æ¦W | localtime | | ½Õ¥Î»yªk | timelist = localtime (timeval); | | ¸Ñ»¡ | »PgmtimeÃþ¦ü¡A°Ï§O¬°±N®É¶¡ÈÂà´«¬°¥»¦a®É¶¡¡C |
| ¨ç¼Æ¦W | utime | | ½Õ¥Î»yªk | utime (acctime, modtime, filelist); | | ¸Ñ»¡ | §ïÅܤå¥óªº³Ì«á³X°Ý®É¶¡©M³Ì«á§ó§ï®É¶¡¡C¨Ò¦p¡J $acctime = -A "file1"; $modtime = -M "file1"; @filelist = ("file2", "file3"); utime ($acctime, $modtime, @filelist); |
| ¨ç¼Æ¦W | fileno | | ½Õ¥Î»yªk | filedesc = fileno (filevar); | | ¸Ñ»¡ | ªð¦^¤å¥óªº¤º³¡UNIX¤å¥ó´yz¡C°Ñ¼Æfilevar¬°¤å¥óÅܶq |
| ¨ç¼Æ¦W | fcntl flock | | ½Õ¥Î»yªk | fcntl (filevar, fcntlrtn, value); flock (filevar, flockop); | | ¸Ñ»¡ | ¸Ô¨£¦P¦WUNIX¨ç¼ÆÀ°§U¡C |
|