看板 b89902xxx 關於我們 聯絡資訊
※ [本文轉錄自 somi 信箱] 作者: b89098@csie.ntu.edu.tw (?d?F?d) 標題: r 2 14:52:49 CST 200:釫呪﾿겁 時間: Mon Mar 4 19:22:29 2002 @@此版本適用於系上的Debian Linux Script started on Mon Mar 4 19:00:51 2002 There is no screen to be resumed. @@首先設定proxy server以免出國太慢time out,也可以不設定 [b89098]/home/student/89/b89098$ setenv ftp_proxy proxy.ntu.edu.tw:3128 使用wget抓取檔案,其他像是ncftpget...都可以用法請自己man wget [b89098]/home/student/89/b89098$ wget ftp://ftp.uu.net/published/books/stevens.advprog.tar.Z --19:01:15-- ftp://ftp.uu.net:21/published/books/stevens.advprog.tar.Z => `stevens.advprog.tar.Z' 正連往 proxy.ntu.edu.tw: 3128... 連上了! 已經送出 Proxy 請求封包,正在等待回應中... 200 OK 長度: 169,163 0K -> .......... .......... .......... .......... .......... [ 30%] 50K -> .......... .......... .......... .......... .......... [ 60%] 100K -> .......... .......... .......... .......... .......... [ 90%] 150K -> .......... ..... [100%] 19:01:22 (95.66 KB/s) - `stevens.advprog.tar.Z' 被存為 [169163/169163] @@用tar把檔案解開,參數(unZip,eXtract,Verbose,Filename) @@詳細用法參照man tar [b89098]/home/student/89/b89098$ tar zxvf stevens.advprog.tar.Z apue/ apue/DISCLAIMER apue/README apue/Sourcefiles apue/Make.def.sun apue/Make.def.44 apue/Make.def.svr4 apue/advio/ apue/advio/Makefile apue/advio/ourhdr.h apue/advio/catgetmsg.c apue/advio/devzero.c apue/advio/mcopy.c apue/advio/nonblockw.c apue/advio/pollpipe.c apue/advio/selectpipe.c apue/call/ apue/call/Makefile apue/call/ourhdr.h apue/call/call.c apue/call/call.h apue/call/escape.c apue/call/loop.c apue/call/loop.poll.c apue/call/main.c apue/call/put.c apue/call/take.c apue/call/takeput.c apue/calld/ apue/calld/Makefile apue/calld/ourhdr.h apue/calld/calld.h apue/calld/childdial.c apue/calld/cliargs.c apue/calld/client.c apue/calld/ctlstr.c apue/calld/debug.c apue/calld/devfile.c apue/calld/dialfile.c apue/calld/expectstr.c apue/calld/lock.c apue/calld/loop.c apue/calld/main.c apue/calld/request.c apue/calld/sendstr.c apue/calld/sigchld.c apue/calld/sysfile.c apue/calld/ttydial.c apue/calld/ttyopen.c apue/datafiles/ apue/datafiles/Makefile apue/datafiles/ourhdr.h apue/datafiles/getpw44bsd.c apue/datafiles/getpwnam.c apue/datafiles/getpwsvr4.c apue/datafiles/prtime.c apue/db.lock.fine/ apue/db.lock.fine/Makefile apue/db.lock.fine/ourhdr.h apue/db.lock.fine/alloc.c apue/db.lock.fine/checkfree.c apue/db.lock.fine/close.c apue/db.lock.fine/db.h apue/db.lock.fine/delete.c apue/db.lock.fine/dodelete.c apue/db.lock.fine/fetch.c apue/db.lock.fine/find.c apue/db.lock.fine/findfree.c apue/db.lock.fine/free.c apue/db.lock.fine/hash.c apue/db.lock.fine/nextrec.c apue/db.lock.fine/open.c apue/db.lock.fine/readdat.c apue/db.lock.fine/readidx.c apue/db.lock.fine/readptr.c apue/db.lock.fine/rewind.c apue/db.lock.fine/stats.c apue/db.lock.fine/store.c apue/db.lock.fine/t4.c apue/db.lock.fine/tstats.c apue/db.lock.fine/writedat.c apue/db.lock.fine/writeidx.c apue/db.lock.fine/writeptr.c apue/environ/ apue/environ/Makefile apue/environ/ourhdr.h apue/environ/doatexit.c apue/environ/getrlimit.c apue/environ/opendata.c apue/environ/testjmp.c apue/file/ apue/file/Makefile apue/file/ourhdr.h apue/file/access.c apue/file/cdpwd.c apue/file/changemod.c apue/file/conf.c apue/file/devrdev.c apue/file/fileflags.c apue/file/filetype.c apue/file/ftw4.c apue/file/hello.c apue/file/hole.c apue/file/longpath.c apue/file/longpath.sh apue/file/ls1.c apue/file/mycd.c apue/file/seek.c apue/file/testerror.c apue/file/uidgid.c apue/file/umask.c apue/file/unlink.c apue/file/zap.c apue/ipc/ apue/ipc/Makefile apue/ipc/ourhdr.h apue/ipc/add2.c apue/ipc/add2stdio.c apue/ipc/fifo1.c apue/ipc/myuclc.c apue/ipc/pipe1.c apue/ipc/pipe2.c apue/ipc/pipe4.c apue/ipc/popen1.c apue/ipc/popen2.c apue/ipc/spipe4.c apue/ipc/tellwait.c apue/ipc/tshm.c apue/lib.sun/ apue/lib.sun/error.c apue/lib.sun/systype.sh apue/lib.sun/old/ apue/lib.sun/old/error.c.save apue/lib.sun/old/error.o.save apue/lib.sun/strerror.c apue/lib.sun/ptyopen.c apue/lib.sun/semaph.c apue/lib.sun/exit.c apue/lib.sun/openmax.c apue/lib.sun/atexit.c apue/lib.sun/Makefile apue/lib.sun/atexit.h apue/lib.sun/signal.c apue/lib.sun/sleepus.c apue/lib.sun/pathalloc.c apue/lib.sun/daemoninit.c apue/lib.sun/setfl.c apue/lib.sun/ourhdr.h apue/lib.sun/prexit.c apue/lib.sun/spipe.c apue/lib.sun/clrfl.c apue/lib.sun/sleep.c apue/lib.sun/tellwait.c apue/lib.sun/lockreg.c apue/lib.sun/locktest.c apue/lib.sun/errorlog.c apue/lib.sun/readn.c apue/lib.sun/nspipe.c apue/lib.sun/writen.c apue/lib.sun/ttymodes.c apue/lib.sun/signalintr.c apue/lib.sun/bufargs.c apue/lib.sun/senderr.c apue/lib.sun/sendfd.c apue/lib.sun/servaccept.c apue/lib.sun/servlisten.c apue/lib.sun/cliconn.c apue/lib.sun/recvfd.c apue/lib.sun/popen.c apue/lib.sun/prmask.c apue/lib.sun/ptyfork.c apue/lib.44/ apue/lib.44/cliconn.c apue/lib.44/bufargs.c apue/lib.44/recvfd.c apue/lib.44/clrfl.c apue/lib.44/daemoninit.c apue/lib.44/error.c apue/lib.44/errorlog.c apue/lib.44/lockreg.c apue/lib.44/locktest.c apue/lib.44/nspipe.c apue/lib.44/openmax.c apue/lib.44/pathalloc.c apue/lib.44/popen.c apue/lib.44/prexit.c apue/lib.44/prmask.c apue/lib.44/ptyfork.c apue/lib.44/ptyopen.c apue/lib.44/readn.c apue/lib.44/sendfd.c apue/lib.44/semaph.c apue/lib.44/senderr.c apue/lib.44/servaccept.c apue/lib.44/Makefile apue/lib.44/setfl.c apue/lib.44/sigblock.c apue/lib.44/servlisten.c apue/lib.44/signal.c apue/lib.44/signalintr.c apue/lib.44/sleep.c apue/lib.44/sleepus.c apue/lib.44/spipe.c apue/lib.44/strerror.c apue/lib.44/tellwait.c apue/lib.44/ttymodes.c apue/lib.44/writen.c apue/lib.44/ourhdr.h apue/lib.44/systype.sh apue/lib.44/sysconf.c apue/lib.44/pathconf.c apue/lib.svr4/ apue/lib.svr4/Makefile apue/lib.svr4/bufargs.c apue/lib.svr4/cliconn.c apue/lib.svr4/clrfl.c apue/lib.svr4/error.c apue/lib.svr4/errorlog.c apue/lib.svr4/popen.c apue/lib.svr4/lockreg.c apue/lib.svr4/locktest.c apue/lib.svr4/nspipe.c apue/lib.svr4/openmax.c apue/lib.svr4/ourhdr.h apue/lib.svr4/pathalloc.c apue/lib.svr4/prexit.c apue/lib.svr4/readn.c apue/lib.svr4/recvfd.c apue/lib.svr4/semaph.c apue/lib.svr4/senderr.c apue/lib.svr4/sendfd.c apue/lib.svr4/servaccept.c apue/lib.svr4/servlisten.c apue/lib.svr4/setfl.c apue/lib.svr4/signal.c apue/lib.svr4/signalintr.c apue/lib.svr4/sleep.c apue/lib.svr4/spipe.c apue/lib.svr4/strerror.c apue/lib.svr4/systype.sh apue/lib.svr4/tellwait.c apue/lib.svr4/ttymodes.c apue/lib.svr4/prmask.c apue/lib.svr4/writen.c apue/lib.svr4/spipe.socket.c apue/lib.svr4/daemoninit.c apue/lib.svr4/ptyopen.c apue/lib.svr4/ptyfork.c apue/lib.svr4/sleepus.c apue/lock/ apue/lock/Makefile apue/lock/ourhdr.h apue/lock/daemon.c apue/lock/deadlock.c apue/lock/mandatory.c apue/lock/outoflocks.c apue/mycat/ apue/mycat/Makefile apue/mycat/ourhdr.h apue/mycat/fgetsfputs.c apue/mycat/getcputc.c apue/mycat/mycat.c apue/open.fe/ apue/open.fe/ourhdr.h apue/open.fe/Makefile apue/open.fe/open.h apue/open.fe/open.c apue/open.fe/main.c apue/open.fe/opend apue/open/ apue/open/ourhdr.h apue/open/Makefile apue/open/open.h apue/open/open.c apue/open/main.c apue/opend.fe/ apue/opend.fe/ourhdr.h apue/opend.fe/Makefile apue/opend.fe/main.c apue/opend.fe/opend.h apue/opend.fe/cliargs.c apue/opend.fe/request.c apue/opend/ apue/opend/ourhdr.h apue/opend/Makefile apue/opend/loop.c apue/opend/main.c apue/opend/opend.h apue/opend/client.c apue/opend/loop.poll.c apue/opend/cliargs.c apue/opend/request.c apue/opend/loop.select.c apue/printer/ apue/printer/hello.ps apue/printer/main.c apue/printer/getstatus.c apue/printer/sendfile.c apue/printer/acct.c apue/printer/output.c apue/printer/input.c apue/printer/pagecount.c apue/printer/interrupt.c apue/printer/message.c apue/printer/tty.c apue/printer/alarm.c apue/printer/vars.c apue/printer/lprps.h apue/printer/mail.c apue/printer/Makefile apue/printer/ourhdr.h apue/printer/acctfile apue/printer/mbox.errs apue/printer/pageno.ps apue/proc/ apue/proc/Makefile apue/proc/ourhdr.h apue/proc/awkexample apue/proc/echoall.c apue/proc/echoarg.c apue/proc/exec1.c apue/proc/exec2.c apue/proc/fork1.c apue/proc/fork2.c apue/proc/pracct.c apue/proc/pruids.c apue/proc/shell1.c apue/proc/shell2.c apue/proc/system.c apue/proc/systest1.c apue/proc/systest2.c apue/proc/systest3.c apue/proc/tellwait1.c apue/proc/tellwait2.c apue/proc/test1.c apue/proc/times1.c apue/proc/vfork1.c apue/proc/vfork3.c apue/proc/wait1.c apue/proc/zombie.c apue/pty/ apue/pty/Makefile apue/pty/ourhdr.h apue/pty/driver.c apue/pty/loop.c apue/pty/main.c apue/sess/ apue/sess/Makefile apue/sess/ourhdr.h apue/sess/orphan.c apue/sess/tdaemon2.c apue/signals/ apue/signals/Makefile apue/signals/ourhdr.h apue/signals/abort.c apue/signals/child.c apue/signals/critical.c apue/signals/mask.c apue/signals/raise.c apue/signals/read1.c apue/signals/read2.c apue/signals/reenter.c apue/signals/setops.c apue/signals/sigtstp.c apue/signals/sigusr.c apue/signals/sleep1.c apue/signals/sleep2.c apue/signals/suspend1.c apue/signals/suspend2.c apue/signals/system.c apue/signals/tsleep2.c apue/stdio/ apue/stdio/Makefile apue/stdio/ourhdr.h apue/stdio/buf.c apue/stdio/tempfiles.c apue/stdio/tempnam.c apue/streams/ apue/streams/Makefile apue/streams/ourhdr.h apue/streams/isastream.c apue/streams/strlist.c apue/streams/t_isastream.c apue/termios/ apue/termios/Makefile apue/termios/ourhdr.h apue/termios/csize.c apue/termios/ctermid.c apue/termios/getpass.c apue/termios/isatty.c apue/termios/settty.c apue/termios/t_getpass.c apue/termios/t_isatty.c apue/termios/t_raw.c apue/termios/t_ttyname.c apue/termios/ttyname.c apue/termios/winch.c apue/test/ apue/test/Makefile apue/test/ourhdr.h apue/test/notatty.c [b89098]/home/student/89/b89098$ cd apue/ @@可以先打開 readme來看看,我事先看過了 [b89098]/home/student/89/b89098/apue$ ls DISCLAIMER README calld file lib.svr4 open.fe proc stdio Make.def.44 Sourcefiles datafiles ipc lock opend pty streams Make.def.sun advio db.lock.fine lib.44 mycat opend.fe sess termios Make.def.svr4 call environ lib.sun open printer signals test @@第一步: @@因為Linux是屬於Svr4系列的UNIX,所以 [b89098]/home/student/89/b89098/apue$ cp Make.def.svr4 Make.defines [b89098]/home/student/89/b89098/apue$ vim Make.defines # Definitions required in all program directories to compile and link # C programs. CC=cc @@把路徑改成自己放檔案的地方,可以用pwd來得到目前工作目錄 #Original LDFLAGS=/home/stevens/libmisc.a LDFLAGS=/home/student/89/b89098/libmisc.a LDLIBS=$(LDFLAGS) NOANSICOMPILE.c=$(CC) $(NOANSICFLAGS) $(CPPFLAGS) -c LINK.c=$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) # Common definitions[m CFLAGS = CFLAGSO = -O @@這裡也一樣 # Original: LIB = /home/stevens/libmisc.a LIB = /home/student/89/b89098/libmisc.a # Our library that almost every program needs. TEMPFILES = core core.* *.o temp.* *.out typescript* # Common temp files to delete from each directory. [b89098]/home/student/89/b89098/apue$ cd lib.svr4 [b89098]/home/student/89/b89098/apue/lib.svr4$ ls Makefile errorlog.c pathalloc.c readn.c servlisten.c spipe.c writen.c bufargs.c lockreg.c popen.c recvfd.c setfl.c spipe.socket.c cliconn.c locktest.c prexit.c semaph.c signal.c strerror.c clrfl.c nspipe.c prmask.c senderr.c signalintr.c systype.sh daemoninit.c openmax.c ptyfork.c sendfd.c sleep.c tellwait.c error.c ourhdr.h ptyopen.c servaccept.c sleepus.c ttymodes.c [b89098]/home/student/89/b89098/apue/lib.svr4$ make @@它的Shell Script systype.h太舊了,而且會變是錯誤 make `systype.sh` /bin/sh: systype.sh: command not found make[1]: Entering directory `/mnt/89/b89098/apue/lib.svr4' make `systype.sh` /bin/sh: systype.sh: command not found make[2]: Entering directory `/mnt/89/b89098/apue/lib.svr4' make `systype.sh` /bin/sh: systype.sh: command not found make[3]: Entering directory `/mnt/89/b89098/apue/lib.svr4' make `systype.sh` make[3]: *** [all] Interrupt make[2]: *** [all] Interrupt make[1]: *** [all] Interrupt make: *** [all] Interrupt @由於systype.sh的格式太過於老舊,且無法辨識linux所以我們自己用svr4來編 [b89098]/home/student/89/b89098/apue/lib.svr4$ make svr4 make "CFLAGS = -O" \ "OBJS = bufargs.o cliconn.o clrfl.o daemoninit.o error.o errorlog.o lockreg.o locktest.o openmax.o pathalloc.o popen.o prmask.o ptyfork.o ptyopen.o readn.o recvfd.o senderr.o sendfd.o servaccept.o servlisten.o setfl.o signal.o signalintr.o sleep.o sleepus.o spipe.o strerror.o tellwait.o ttymodes.o writen.o prexit.o semaph.o" "RANLIB = ls -l" lib make[1]: Entering directory `/mnt/89/b89098/apue/lib.svr4' cc -O -c -o bufargs.o bufargs.c cc -O -c -o cliconn.o cliconn.c cc -O -c -o clrfl.o clrfl.c cc -O -c -o daemoninit.o daemoninit.c cc -O -c -o error.o error.c cc -O -c -o errorlog.o errorlog.c cc -O -c -o lockreg.o lockreg.c cc -O -c -o locktest.o locktest.c cc -O -c -o openmax.o openmax.c cc -O -c -o pathalloc.o pathalloc.c cc -O -c -o popen.o popen.c cc -O -c -o prmask.o prmask.c cc -O -c -o ptyfork.o ptyfork.c cc -O -c -o ptyopen.o ptyopen.c cc -O -c -o readn.o readn.c cc -O -c -o recvfd.o recvfd.c cc -O -c -o senderr.o senderr.c cc -O -c -o sendfd.o sendfd.c cc -O -c -o servaccept.o servaccept.c cc -O -c -o servlisten.o servlisten.c cc -O -c -o setfl.o setfl.c cc -O -c -o signal.o signal.c cc -O -c -o signalintr.o signalintr.c cc -O -c -o sleep.o sleep.c sleep.c: In function `sleep': sleep.c:18: warning: assignment from incompatible pointer type cc -O -c -o sleepus.o sleepus.c cc -O -c -o spipe.o spipe.c cc -O -c -o strerror.o strerror.c strerror.c:3: conflicting types for `sys_errlist' /usr/include/stdio.h:557: previous declaration of `sys_errlist' make[1]: *** [strerror.o] Error 1 make[1]: Leaving directory `/mnt/89/b89098/apue/lib.svr4' make: *** [svr4] Error 2 [b89098]/home/student/89/b89098/apue/lib.svr4$ vim strerror.c @由於sys_errlist與stdio.h中的宣告不同 所以發生矛盾 /usr/include/stdio.h:557為 extern __const char *__const sys_errlist[]; strerror.c:3為 extern char *sys_errlist[]; 把它註解掉(用stdio.h預設的就好) @再試一次 [b89098]/home/student/89/b89098/apue/lib.svr4$ make svr4 "OBJS = bufargs.o cliconn.o clrfl.o daemoninit.o error.o errorlog.o lockreg.o locktest.o openmax.o pathalloc.o popen.o prmask.o ptyfork.o ptyopen.o readn.o recvfd.o senderr.o sendfd.o servaccept.o servlisten.o setfl.o signal.o signalintr.o sleep.o sleepus.o spipe.o strerror.o tellwait.o ttymodes.o writen.o prexit.o semaph.o" "RANLIB = ls -l" lib make[1]: Entering directory `/mnt/89/b89098/apue/lib.svr4' cc -O -c -o strerror.o strerror.c strerror.c: In function `strerror': strerror.c:12: warning: return discards qualifiers from pointer target type cc -O -c -o tellwait.o tellwait.c cc -O -c -o ttymodes.o ttymodes.c cc -O -c -o writen.o writen.c cc -O -c -o prexit.o prexit.c cc -O -c -o semaph.o semaph.c ar rv ../libmisc.a bufargs.o cliconn.o clrfl.o daemoninit.o error.o errorlog.o lockreg.o locktest.o openmax.o pathalloc.o popen.o prmask.o ptyfork.o ptyopen.o readn.o recvfd.o senderr.o sendfd.o servaccept.o servlisten.o setfl.o signal.o signalintr.o sleep.o sleepus.o spipe.o strerror.o tellwait.o ttymodes.o writen.o prexit.o semaph.o a - bufargs.o a - cliconn.o a - clrfl.o a - daemoninit.o a - error.o a - errorlog.o a - lockreg.o a - locktest.o a - openmax.o a - pathalloc.o a - popen.o a - prmask.o a - ptyfork.o a - ptyopen.o a - readn.o a - recvfd.o a - senderr.o a - sendfd.o a - servaccept.o a - servlisten.o a - setfl.o a - signal.o a - signalintr.o a - sleep.o a - sleepus.o a - spipe.o a - strerror.o a - tellwait.o a - ttymodes.o a - writen.o a - prexit.o a - semaph.o ls -l ../libmisc.a -rw-rw-r-- 1 b89098 student 43528 Mar 4 19:02 ../libmisc.a make[1]: Leaving directory `/mnt/89/b89098/apue/lib.svr4' @@好了,回上一層 [b89098]/home/student/89/b89098/apue/lib.svr4$ cd .. [b89098]/home/student/89/b89098/apue$ ls DISCLAIMER README datafiles lib.44 mycat printer stdio Make.def.44 Sourcefiles db.lock.fine lib.sun open proc streams Make.def.sun advio environ lib.svr4 open.fe pty termios Make.def.svr4 call file libmisc.a opend sess test Make.defines calld ipc lock opend.fe signals [b89098]/home/student/89/b89098/apue$ cd file/ [b89098]/home/student/89/b89098/apue/file$ ls Makefile changemod.c fileflags.c hello.c longpath.sh ourhdr.h uidgid.c zap.c access.c conf.c filetype.c hole.c ls1.c seek.c umask.c cdpwd.c devrdev.c ftw4.c longpath.c mycd.c testerror.c unlink.c [b89098]/home/student/89/b89098/apue/file$ make access cc ../libmisc.a access.c ../libmisc.a -o access [b89098]/home/student/89/b89098/apue/file$ ./access usage: a.out <pathname> [b89098]/home/student/89/b89098/apue/file$ ./access / read access OK open for reading OK [b89098]/home/student/89/b89098/apue/file$ exit Script done on Mon Mar 4 19:03:08 2002 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.30.60 ※ 編輯: somi 來自: 140.112.30.60 (03/04 19:38)