2018年3月29日木曜日

開発環境

Head First C ―頭とからだで覚えるCの基本 (David Griffiths (著)、Dawn Griffiths (著)、中田 秀基 (監修)、木下 哲也 (翻訳)、オライリージャパン)の4章(複数のソースファイルの使用 - 分割して構築する)、makeマグネット(p. 203)を取り組んでみる。

makeマグネット(p. 203)

Makefile

oggswing: oggswing.h oggswing.c
 gcc oggswing.c -o oggswing

swing.ogg: oggswing whitennerdy.ogg
 ./oggswing whitennerdy.ogg swing.ogg

oggswing.h

#pragma once

oggswing.c

#include <stdio.h>
#include "oggswing.h"

int main(int argc, char *argv[]) {
  if (argc != 3) {
    fprintf(stderr, "引数が必要\n");
    return 1;
  }
  FILE *in = fopen(argv[1], "r");
  FILE *out = fopen(argv[2], "w");
  char s[255];
  while (fgets(s, sizeof(s), in)) {
    fprintf(out, "%s", s);
  }
  fclose(in);
  fclose(out);
}

入出力結果(Terminal)

$ make swing.ogg
gcc oggswing.c -o oggswing
./oggswing whitennerdy.ogg swing.ogg
$ cat whitennerdy.ogg
Whitennerdy
$ cat swing.ogg 
Whitennerdy
$

0 コメント:

コメントを投稿