C 1 1.1 l s ( 1 ) - i i 4. 14 - d $ l s -ldi /etc/. /etc/.. - i i 3077 drwxr-sr-x 7 bin 2048 Aug 5 20:12 /etc/./ 2 drwxr-xr-x 13 root 512 Aug 5 20:11 /etc/../ $ls -ldi /. /..... i 2 2 drwxr-xr-x 13 root 512 Aug 5 20:11 /./ 2 drwxr-xr-x 13 root 512 Aug 5 20:11 /../ 1.2 UNIX 1-4 1.3 p e r r o r p t r p e r r o p t r c o n s t p e r r o r p t r s t r e r r o r C s t r e r r o r c o n s t C K e r n i g h a n R i t c h i e 1 998 5. 2 1.4 ff l u s h f p r i n t f v p r i n t f e r r n o e r r n o Not a t y p e w r i t e r 5. 4 I / O I / O i s t t y 11. 9 e r r n o E N O T T Y C - 1 C-1 errno p r i n t f
C 519 $ grep BSD /etc/motd 4.3 BSD UNIX #29: Thu Mar 29 11:14:13 MST 1990 $ a. o u t open error: error = 2 s t d o u t $ a.out > temp.foo $ cat temp.foo open error: error = 25 1.5 2038 1.6 248 2 2.1 4. 3 + B S D <machine/ansi.h> # i f n d e f _ A N S I _ H _ # d e f i n e _ A N S I _ H _ # d e f i n e _CLOCK_T_ unsigned long # d e f i n e _SIZE_T_ unsigned int... # e n d i f /* _ANSI_H_ */ 6 s i z e _ t #ifdef typedef #undef # e n d i f _SIZE_T SIZE_T_ size_t; _SIZE_T_ t y p e d e f 3 3.1 I / O I / B a c h 1 986 3 r e a d w r i t e I / O r e a d w r i t e 3.3 o p e n v d u p f d 1 C - F _ S E T F D f d 1 f d 1 F _ S E T F L f d 1 f d f d 2 3.4 f d 1 d u p 2 ( f d 1 ) 1 3. 12 3 d u p 2 3 f d 3 3 d u p 2 4 3
5 2 0 U N I X f d p t r v v v v i C-1 open d u p 3.5 shell, a.out > outfile 2>&1 o u t f i l e d u p s 2 1 2 a.out 2 >&1 >outfile d u p s 2 o u t f i l e 1 o u t f i l e 2 3.6 l s e e k r e a d w r i t e 4 4.1 stat / b i n / u s r / b i n s t a t / b i n s t a t 4.2 < o u r h d r. h > #if defined (S_IFLNK) &&!defined(s_islnk ) #define S_ISLNK(mode) (((mode) & S_IFMT ) == S_IFLNK) # e n d i f 4.3 $ umask 777 $ data > temp.foo $ ls -l temp.foo ---------- l stevens 29 Jan 14 06:39 temp.foo 4.4 $ data > foo $ c h m o d u-r foo $ ls -l foo -- w - r w - r -- l stevens 29 Jul 31 09:00 foo $ cat foo
C 521 cat: foo: Permission denied 4.5 o p e n c r e a t 4-3 $ rm foo bar $ data > foo $ data > bar $ chmod a-r foo bar $ ls -l foo bar --w--w---- l stevens 29 Jul 31 10:47 bar --w--w---- l stevens 29 Jul 31 10:47 foo $ a. o u t 4-3 $ ls -l foo bar --w--w---- ls t e v e n s 0 Jul 31 10:47 bar --w--w---- ls t e v e n s 0 Jul 31 10:47 foo 4.6 0... 0 4.8 c o r e r w - r- - r- - u m a s k s h e l l r w - r w - r w - u m a s k u m a s k 0 2 4.9 d u du tempfile du. u n l i n k t e m p f i l e d u. t e m p f i l e d f 4.10 i 4. 11 o p e n d i r d o p a t h o p e n d i r c l o s e d i r S V R 4 f t w 4.13 chroot F T P F T P c h r o o t c h r o o t c h r o o t r o o t r o o 4.14 s t a t u t i m e u t i m e s t a t 4.15 finger(1) s t a t
5 2 2 U N I X 4.16 c p i o s t _ a t i m e s t _ m t i m e c p i o - a - m t a r - m t a r u t i m e 4.17 read f i l e ( 1 ) u t i m e 4.18 PAT H _ M A X C - 2 100 45 g e t c w d 100 r e a l l o c C-2
C 523 $ a. o u t getcwd failed, size = 1025: Result too large getcwd failed, size = 1125: Result too large... 33 getcwd failed, size = 4525: Result too large length = 4613 4613 t a r c p i o rm -r 4.19 /dev u n l i n k 5 5.2 fgets f p u t s M A X L I N E M A X L I N g e t s p u t s 5.3 p r i n t f p r i n t f ("") 0 5.4 g e t c g e t c h a r E O F 1 E O F c 1 5.5 5 4 5 I D 14 U N I X 5.6 ff l u s h f s y n c f s y n c f i l e n o ff l u s h f s y n c 5.7 f g e t s 6 6.1 S V R 4 6. 2 p w _ p a s s w d 4. 3 + B S D I D 0 g e t p w n a m g e t p w u i d p a s s e d p w _ p a s s w d 6.2 S V R 4 C - 3 g e t s p n a m E A C C E S
5 2 4 U N I X C-3 S V R 4 4. 3 + B S D C - 4 p w _ p a s s e d (*) C-4 4.3+ BSD 6.4 C - 5 d a t e C-5 d a t e ( 1 )
C 525 C - 5 $ echo $TZ M S T 7 $ a. o u t Wed Jan 15 06:48:57 MST 1992 $ TZ=EST5EDT a.out Wed Jan 15 08:49:06 EST 1992 $ TZ=JST-9 a.out Wed Jan 15 22:49:12 JST 1992 7 7.1 p r i n t f m a i n 7.2 I / O 7.3 a g r c a rg v e n v i r o n U N I X 7.4 C 7.5 typedef void Exitfunc(void) ; int atexit(exitfunc f u n * c) ; 7.6 calloc 0 ANSI C 0 0 7.7 e x e c 7.8 c o r e s t r i p ( 1 ) a. o u t 98 304 16 384 7.9 I / O 7.10 i f v a l i f i f v a l 8 8.1 8-2 p r i n t f i = printf("pid = %d, glob = %d, var = %d\n", sprintf (buf,"%d\n", i); getpid( ), glob, var);
5 2 6 U N I X write (STDOUT_FILENO, buf, strlen(buf)); i b u f e x i t I / O S T D O U T _ F I L E N O I / O d u p w r i t e 8.2 C - 6 C-6 v f o r k f 1 v f o r k f 1 C - 2 v f o r k f 1 f 2 f 1 f 2 b u f 0 1000 f 2 _ e x i t m a i n f 2 v f o r k f 1 U N I X c o r e 8.3 8-7 m a i n f l C-2 v f o r k
C 527 s h e l l f o r k 8.4 a rg v [ 2 ] / h o m e / s t e v e n s / b i n / t e s t i n t e r p e x e c l p e x e c v e e x e c l 8.5 - - I D I 8.6 C - 7 C-7 p s p s 1 Z $ a. o u t PID TT STATTIME COMMAND 5940 p3 S 0:00 a.out 5941 p3 Z 0:00 <defunct> 5942 p3 S 0:00 sh -c ps 5943 p3 R 0:00 ps 9 9.1 i n i t login shell s h e l l S I G C H L D i n i t i n i t t e l n e t d
5 2 8 U N I X 1 0 10.1 p a u s e 10.2 C - 8 r a i s e C-8 raise 10.3 C - 3 S I G I N T S I G I N T l o n g j m p m a i n m a i n m a i n m a i n s i g _ i n t s i g _ i n t s i g _ a l r m C-3 longjmp s i g _ a l r m l o n g j m p m a i n s i g _ i n t 10.4 a l a r m s e t j m p a l a r m l o n g j m p s e t j m p e n v _ a l r m l o n g j m p s e t j m p l o n g j m 10.5 Don Libes Implementing Software Ti m e r sc Users Journal, Vol. 8, no. 11, N o v. 1990 10.7 _ e x i t S I G A B RT 10.8 I D k i l l I D 10.10 60 ~ 90 s l e e p C P U s l e e p B S D c r o n s l e e p ( 60 ) s l e e p ( 59 ) 60
C 529 10. 11 S V R 4 S I G X F S Z 1024 w r i t e 24 4. 3 + B S D 1500 w r i t e 1 e r r n o E F B I G S u n O S 4. 1. 2 S V R 4 V B S D 10.12 I / O f w r i t e 11 11.1 r e s e t 11.2 128 8 I / O 11.3 S V R 4 stty -a v i v M I N 1 T I M E 1 r e a d s 11.4 S V R 4 AT & T 1 991 t e r m i o x ( 7 ) 4. 3 + B S D c _ c f l a g C C T S _ O F L O W C RT S _ I F L O W 11-1 1 2 12.1 E N O L C K w r i t e w _ l o c k w r i t e u n _ l o c k u n _ l o c k w r i t e w _ l o c C - 4 12.2 S V R 4 4. 3 + B S D, f d _ s e t C-4 F D _ C f d _ s e t 12.3 S V R 4 4. 3 + B S D <sys/types.h> F D _ S E T S I Z E f d _ s e t 2048 #define FD_SETSIZE 2048 # i n c l u d e < s y s / t y p e s. h > 12.4 F D _ Z E R O F D _ S E T F D _ C L R F D _ I S S E T s i g e m p t y s e t s i g a d d s e t s i g d e l s e t s i g i s m e m b e r
5 3 0 U N I X s i g f i l l s e t F D _ x x x 12.5 12.6 s e l e c t C - 9 p o l l C - 10 C-9 s e l e c t s l e e p _ u s C-10 p o l l s l e e p _ u s B S D u s l e e p ( 3 ) s e t i t i m e r 8 12.7 T E L L _ WA I T WA I T _ C H I L D T E L L _ PA R E N T f o r k 12.8 s e l e c t C - 11 p o l l C - 11 s e l e c t
C 531 S V R 4 SunOS 4.1.1 s e l e c t p o l l 2-6 4. 3 + B S D s e l e c t 3073 12.9 S V R 4 4. 3 + B S D SunOS 4.1.2 12-14 1 3 13.1 c h r o o t / d e v / l o g c h r o o t L O G _ N D E L AY o p e n l o g c h r o o t U N I X 13.3 C - 12 C-12 d a e m o n _ i n i t 1 2 3 d e a m o n _ i n i t 3 g e t l o g i n
5 3 2 U N I X u t m p 4. 3 + B S D f o r k i n i t 1 4 14.1 14.2 s h e l l s h e l l 14.3 s h e l l p o p e n s h e l l 1 p c l o s e sh: a.out: not found 14.4 s h e l l Bourne shell K o r n S h e l l echo $? 128 14.5 FILE *fpin, *fpout; f d o p e n I / O w h i l e w h i l e r e a d w r i t e 14.6 s y s t e m w a i t p o p e n w a i t s l e e p s y s t e m p c l o s e w a i t p c l o s e 14.7 select r e a d 0 p o l l P O L L H U P r e a d 0 p o l l P O L L I N
C 533 s e l e c t w r i t e S I G P I P E w r i t e E P I P p o l l p o l P O L L H U P 14.8 c m d s t r i n g 2 > &1 14.9 popen e x e c Bourne shell s h e l l f o r k s h e l l c m d s t r i n g s h e l l s h e l p c l o s e w a i t p i d 14.10 F I F O 1 0 F I F O o p e n o p e C - 13 C-13 F I F O 14. 11-14.13 14.14 C - 1 C-1 14-12 i i u p d a t e 0 m m a p 1
5 3 4 U N I X i i u p d a t e 1 5 15.3 d e c l a r a t i o n d e f i n i t i o n o p e n. h e x t e r n m a i n. c C 15.5 select p o l l c l i e n t 1 6 16.1 _db_dodelete d b _ n e x t r e c _ d b _ w r i t e d a t _ d b _ n e x t r e c d b _ n e x t r e _ d b _ r e a d i d x _ d b _ r e a d d a t _ d b _ d o d e l e t e 16.2 d b _ n e x t r e c _ d b _ r e a d i d x d b _ d e l e t e _ d b _ r e a d d a t d b _ n e x t r e c d b _ n e x t r e c 16.3 _ d b _ w r i t e i d x _ d b _ w r i t e d a t 1 7 0 1 0 2 1 3 2 3 2 4 3 5 4 17.1 psif %! r e w i n d l p r p s t e x t p s f o r k t e x t p s l p r p s
C 535 1 8 18.2 g e t o p t g e t o p t o p t i n d 1 g e t o p t g e t o p t o p t i n d 18.3 C l i e n t S y s t e m s, 18.4 c l i e n t _ a d d r e a l l o c c l i e n t c l i e n t _ a d d s e l e c t c l i p t r 18.5 t a k e _ p u t _ a rg s 18.6 S I G H U P 18.9 s t t y U N I X s t t 1 9 19.1 telnetd r l o g i n d, c h o w n c h m o d 19.3 pty -n stty -a termios winsize 19.5 fcntl F_SETFL - 19.6 1 s h e l l2 pty 3 c a t s h e l l s h e l l c a t s h e l l 19.7 c a t p t y S I G T E R M main e x i t ( 0 ) 8-17 cat e = 270, chars = 274, stat = 0: pty e = 262, chars = 40, stat = 15: F X pty e = 288, chars = 188, stat = 0: 19.8 s h e l l e c h o d a t e ( 1 ) #!/ b i n / s h (echo "Script started on " `date`; pty "${SHELL:-/bin/sh}"; echo "Script done on " `date`) tee typescript 19.9 p t y t t y n a m e