一个Unix Cat的实现
在这个程序中,每一个命令行变量都被当做一个文件名,打开文件,打印文件内容。
for (let i = 0; i < Deno.args.length; i++) {
let filename = Deno.args[i];
let file = await Deno.open(filename);
await Deno.copy(file, Deno.stdout);
file.close();
}
这里的 copy()
函数的操作只会从内核到用户空间再到内核副本拷贝。也就是说,从文件中读取数据,到写到输出流,内存使用是一样的。这描绘了Deno在I/O流上的基本设计目标。
试一试:
deno run --allow-read https://deno.land/std/examples/cat.ts /etc/passwd