2014年3月22日土曜日

開発環境

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

その他参考書籍

makeマグネット(p.203)

コード(BBEdit, Emacs)

oggswing.c

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

int main(int argc, char *argv[])
{
  char line[80];
  FILE *in;
  FILE *out;

  if (argc != 3) {
    fprintf(stderr,
            "引数に読み込むファイル、書き出すファイルを指定してください。\n");
    return 1;
  }
  if (!(in = fopen(argv[1], "r"))) {
    fprintf(stderr, "ファイル'%s'を開けませんでした。\n", argv[1]);
    return 1;
  }
  if (!(out = fopen(argv[2], "w"))) {
    fprintf(stderr, "ファイル'%s'を開けませんでした。\n", argv[2]);
    return 1;
  }

  while (fscanf(in, "%79[^\n]\n", line) == 1) {
    fprintf(out, "%s\n", line);
  }
  p();
  
  return (0);
}

void p()
{
  printf("書き込み終了\n");
}

oggswing.h

void p();

Makefile

oggswing: oggswing.c oggswing.h
 cc oggswing.c -o oggswing

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

入出力結果(Terminal)

$ cat whitennerdy.ogg 
Hello, make tool!
$ ls swing.ogg
ls: swing.ogg: No such file or directory
$ make swing.ogg
cc oggswing.c -o oggswing
./oggswing whitennerdy.ogg swing.ogg
書き込み終了
$ cat swing.ogg 
Hello, make tool!
$

0 コメント:

コメントを投稿