C言語-コマンドの作成
前へ 目次へ 次へ 

2-5 ntype

【名前】 ntype - 複数ファイルの内容を表示する。

【書式】 ntype [-n] filename1 [filename2 ...]

【解説】 指定された複数のファイルの内容を連続して表示する。オプションとして"-n"を指定すると行番号付きで表示する。オプションは任意の位置に指定できる。

使用例
ntype abc … ファイルabcの内容を表示する。
ntype -n abcd … ファイルabcdの内容を行番号付きで表示する。(ntype abcd -n でも良い)
ntype a1 -n a2 … ファイルa1とa2の内容を行番号付きで表示する。

【参照】 mtype, num

【フローチャート・ソースリスト】

ntype


 1:
 2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
#include <stdio.h>
#include <stdlib.h>

#define STRING_MAX 256    /* 最大文字長の定義 */

int main(int argc, char **argv)
{
    FILE    *filep;
    char    buff[STRING_MAX];
    int     count, opt = 0, nn;

    if(argc < 2){                                 /* パラメータ数のチェック */
        printf("Usage : XTYPE [option] filename1 [filename2 ...]\n");
        exit(1);
    }
    for(nn = 1; nn < argc; ++nn){                 /* オプションのチェック */
        if(argv[nn][0] == '-')
            if(argv[nn][1] == 'n')
                opt = 1;
            else{
                printf("unknown option -%c\n", argv[nn][1]);
                exit(3);
            }
    }
    while(--argc){                                /* ファイル数分繰り返す */
        ++argv;
        if(**argv == '-')                         /* オプションのとき */
            continue;                              /* whileへ戻る */
        if((filep = fopen(*argv, "r")) == NULL){   /* オープンチェック */
            printf("can not open file. %s\n", *argv);
            exit(2);
        }
        count = 0;                                /* カウンタのクリア */
        while(fgets(buff, STRING_MAX, filep) != NULL){  /* 1行読み込み */
            ++count;                                     /* 1行加算 */
            if(opt == 1)
                printf("%6d ", count);                   /* 行数表示 */
            printf("%s", buff);                          /* 1行表示 */
        }
        fclose(filep);                                  /* クローズ */
    }
    return(0);
}


前へ 目次へ 次へ 
Copyright © 2001 Hiroshi Masuda 

 

 

inserted by FC2 system