#include <io.h>
#include <sys\stat.h>
#include <sys\types.h>
#include <stdlib.h>
#include <errno.h>
#include <stdio.h>
#include <string.h>
#include <fcntl.h>
#include <conio.h>
void main(int argc, char *argv[]){
int fd; // ファイルディスクリプタ
int flag; // read関数の戻り値
char ch; // 読み込んだ文字
// パラメータが少ない場合
if ( argc < 2 ){
printf("パラメータが足りません.\n\n");
return;
}
// パラメータが多い場合
if ( argc > 2 ){
printf("パラメータが多すぎます.\n\n");
return;
}
// パラメータは「/?」か?
if ( strcmp(argv[1], "/?" ) == 0 ){
printf("テキスト ファイルの内容を表示します.\n\n");
printf("MYTYPE [ドライブ:][パス]ファイル名\n\n");
return;
}
// ファイルオープン
fd = open(argv[1], O_RDONLY | O_TEXT );
if ( fd == -1 ){
switch ( errno ){
case EACCES :
printf("アクセスは拒否されました");
break;
case EMFILE :
printf("開いているファイルが多すぎます");
break;
default :
printf("ファイルが見つかりません.");
}
printf(" - %s\n\n", argv[1]);
return;
}
// 1バイト読む
flag = read(fd, &ch, 1);
while( flag == 1 ){
// 読み込んだ文字を表示
putch( (int)ch );
// 1バイト読む
flag = read(fd, &ch, 1);
}
// ファイルクローズ
close( fd );
}
|