>>300をスレ上で見やすくだけした
この場合、リードするファイルが存在しなかった時にバグるね
#include <stdio.h>
#include <string.h>
#define BUFFER_LEN 1024
#define FNAME_LEN 512
int main(int argc, char* argv[])
{
int c, cnt;
static char buf[BUFFER_LEN], fname[FNAME_LEN], newfname[FNAME_LEN+4];
FILE *fp, *fp2;
// 引数が無かったら何もせず終了
if (argc == 1) {printf("no run, because no argument\n"); return 0;}
// 引数=ファイル名と仮定してファイル名を取得する
for (c=1;c<argc;c++) strcat(fname, argv[c]);
strcpy(newfname, fname);
// .288を策走させ新しいファイルの名前には288を付けたり付けなかったり
if (strstr(fname,".288")) newfname[strlen(newfname)-4] = '\0';
else strcat(newfname, ".288");
fp = fopen(fname, "rb"), fp2 = fopen(newfname, "wb");
while (!feof(fp)) {
// 1024バイト取得し、それぞれ全ビットを反転させる
c = fread(buf, sizeof(char), BUFFER_LEN, fp);
for (cnt=0;cnt<c;cnt++) buf[cnt] = buf[cnt]^0xff;
fwrite(buf, sizeof(char), c, fp2);
}
fclose(fp), fclose(fp2);
return 0;
}