Arith-N 是可以在命令行指定阶数的 N 阶上下文自适应算术编码通用压缩、解压缩程序
源代码在线查看: main-e.cpp
// main-e.cpp
#include
#include
#include
#include "bitio.h"
#include "errhand.h"
#include "main.h"
void usage_exit( char * prog_name );
int main( int argc, char * argv[] )
{
FILE* output;
BIT_FILE* input;
setbuf(stdout, NULL);
if (argc < 3)
usage_exit(argv[0]);
input = OpenInputBitFile(argv[1]);
if (input == NULL)
fatal_error("Error opening %s for input\n", argv[1]);
output = fopen(argv[2], "wb");
if (output == NULL)
fatal_error("Error opening %s for output\n", argv[2]);
printf("\nExpanding %s to %s\n", argv[1], argv[2]);
printf("Using %s\n", CompressionName);
argc -= 3;
argv += 3;
ExpandFile(input, output, argc, argv);
CloseInputBitFile(input);
fclose(output);
putc('\n', stdout);
return 0;
}
void usage_exit(char* prog_name)
{
char* short_name;
char* extension;
short_name = strrchr(prog_name, '\\');
if (short_name == NULL)
short_name = strrchr(prog_name, '/');
if (short_name == NULL)
short_name = strrchr(prog_name, ':');
if (short_name != NULL)
short_name++;
else
short_name = prog_name;
extension = strrchr(short_name, '.');
if (extension != NULL)
*extension = '\0';
printf("\nUsage: %s %s\n", short_name, Usage);
exit(0);
}