mirror of
https://github.com/gopl-zh/gopl-zh.github.com.git
synced 2025-10-28 17:11:39 +00:00
ch13: fix code path
This commit is contained in:
@@ -41,9 +41,8 @@ bzip2壓縮算法,是基於優雅的Burrows-Wheeler變換算法,運行速度
|
||||
|
||||
我們可以在Go代碼中直接調用BZ2_bzCompressInit和BZ2_bzCompressEnd,但是對於BZ2_bzCompress,我們將定義一個C語言的包裝函數,用它完成眞正的工作。下面是C代碼,對應一個獨立的文件。
|
||||
|
||||
<u><i>gopl.io/ch13/bzip</i></u>
|
||||
```C
|
||||
gopl.io/ch13/bzip
|
||||
|
||||
/* This file is gopl.io/ch13/bzip/bzip2.c, */
|
||||
/* a simple wrapper for libbzip2 suitable for cgo. */
|
||||
#include <bzlib.h>
|
||||
@@ -168,9 +167,8 @@ func (w *writer) Close() error {
|
||||
|
||||
下面的bzipper程序,使用我們自己包實現的bzip2壓縮命令。它的行爲和許多Unix繫統的bzip2命令類似。
|
||||
|
||||
<u><i>gopl.io/ch13/bzipper</i></u>
|
||||
```Go
|
||||
gopl.io/ch13/bzipper
|
||||
|
||||
// Bzipper reads input, bzip2-compresses it, and writes it out.
|
||||
package main
|
||||
|
||||
@@ -211,4 +209,3 @@ $ ./bzipper < /usr/share/dict/words | bunzip2 | sha256sum
|
||||
**練習 13.3:** 使用sync.Mutex以保證bzip2.writer在多個goroutines中被併發調用是安全的。
|
||||
|
||||
**練習 13.4:** 因爲C庫依賴的限製。 使用os/exec包啟動/bin/bzip2命令作爲一個子進程,提供一個純Go的bzip.NewWriter的替代實現(譯註:雖然是純Go實現,但是運行時將依賴/bin/bzip2命令,其他操作繫統可能無法運行)。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user