go build -buildmode=plugin ../mrapps/wc.go
这个指令是什么意思 :

这个命令的作用是编译 ../mrapps/wc.go 文件,并将其生成一个 Go 插件文件。生成的插件文件通常是一个 .so(共享库文件)文件,它可以在运行时被其他 Go 程序通过 plugin 包加载和调用。

例如:

你可以在主程序中使用 plugin 包动态加载 wc.so 插件,并调用插件中的函数。

go run mrsequential.go wc.so pg*.txt:

go run:用于编译并运行 Go 程序。它会在内存中临时编译指定的 Go 文件,并立即执行。

mrsequential.go:这是要执行的 Go 源文件,Go 编译器会先编译这个文件并运行它。这个文件应该包含 main 函数,通常是程序的入口点。

wc.so:这是一个 Go 插件文件(共享库)。它通常是通过 go build -buildmode=plugin 命令生成的。该文件包含 Go 代码,可能定义了一个插件接口,在运行时可以被主程序(mrsequential.go)动态加载和调用。wc.so 可能提供某些功能,mrsequential.go 将加载并使用这些功能。

pg*.txt:这是一个通配符表达式,表示所有以 pg 开头,后面跟任意字符,且以 .txt 结尾的文件。例如,pg1.txt, pg42.txt, pgfile.txt 都会被匹配并作为参数传递给程序。

more mr-out-0 将会输出很多文本 这是因为:

mrsequential.go 将其输出保留在文件 mr-out-0 中。输入来自名为 pg-xxx.txt 的文本文件