私は TTCN-3 (Testing and Test Control Notation) スクリプト言語に取り組んでいます。このコードファイルのガイドラインチェッカーを準備したかったのです。
そのために、TTCN-3 スクリプト ファイル ( file.ttcn のようなもの) の行を 1 行ずつバッファーに読み込みます。しかし、私にとって fopen / sopen / open / fgetc / fscanf は正しく機能せず、ファイルを正しく読み取っていません。NULLを与えています。その文字をバッファに読み込む方法はありますか。C は、拡張子が 3 文字を超えるファイル (.ttcn など) を読み取ることができないと思います。私の仮定が間違っていたら許してください。
私の環境は、WindowsのTurbo Cです。
編集:
はい、これらのエラーも確認しましたが、read() に対して不明なエラーが発生しており、そのようなファイルまたはディレクトリは存在しません。
私のコードは次のとおりです
#include <errno.h>
#include <io.h>
#include <fcntl.h>
#include <sys\stat.h>
#include <process.h>
#include <share.h>
#include <stdio.h>
int main(void)
{
int handle;
int status;
int i=0;
char ch;
FILE *fp;
char *buffer;
char *buf;
clrscr();
handle = sopen("c:\\tc\\bin\\hi.ttcn", O_BINARY, SH_DENYNONE, S_IREAD);
/ここでも O_TEXT などを使用しました/
if (!handle)
{
printf("sopen failed\n");
// exit(1);
}
printf("\nObtained string %s @",buf);
close(handle);
fp=fopen("c:\\tc\\bin\\hi.ttcn","r"); \\sorry for the old version of one slash
if(fp==NULL) \\I was doing it with argv[1] for opening
{ \\user given file name
printf("\nCannot open file");
}
ch=fgetc(fp);
i=0;
while(i<10)
{
printf("\ncharacter is %c %d",ch,ch);
i++; //Here I wanted to take characters into
ch=fgetc(fp); //buffer
}
getch();
return 0;
}