文章预览
之前的程序不能够处理压缩文件,而事实上为了节约空间,基本上fastq都会压缩成gz格式,因此这一课就是让程序能够支持压缩文件。 这里有两种思路,一种是利用管道,将之前的压缩文件通过 zcat 程序读取然后传递给我们的程序,另一种则是在程序中调用zlib库,让程序能够直接处理gz文件. 背景知识 针对思路1 : 系统在每个C语言运行的时候都至少会提供三个流,标准输入(stdin),标准输出(stdout)和标准错误(stderr). 在之前的程序我们就用到了stdout,用于将结果输出到屏幕上, 即 fprintf ( stdout , "%s" , line ); 。同样,我们可以修改 fgets ( line , MAX_LINE_LENGTH , fi ) 中的 fi 为 stdin 使得程序能够接受管道传递的数据。 针对思路2 : 利用zlib读取gz文件并不复杂,只需要将原来的函数
………………………………