0

catopen は、同じ設定で異なるサーバーにある同じ cat ファイルを開くことができません。

errno が 0 の場合、私の理解ではエラーがないことを意味します。

誰かが前にこのようなものを見たことがあれば教えてください。誰かがそれが起こっている理由を知っていれば、それは私にとって非常に役に立ちます

私が書いたサンプルコード

int main()
{

   nl_catd cat;

   string fileName;

   cout<<"Enter the cat file name: ";

   cin>>fileName;

   cat = catopen(fileName.c_str(), 0);

   if (cat == (nl_catd)-1)

   {

      cerr << "Unable to open catalogue: " << fileName <<" ....and the Error number: "<<errno<<"\n";

      exit(1);

   }

   printf("File opened...\n");

   catclose( cat );

   exit(0);

}

上記コードの出力

成功した場合:

./a.out

cat ファイル名を入力してください: LinkMonitor.epod.cat

ファイルを開いています...

故障の場合:

./a.out

cat ファイル名を入力してください: ehap_ac_in.epod.cat

カタログを開けません: ehap_ac_in.epod.cat0

ここで、0 はエラー コードです。

4

1 に答える 1

2

に文字列をerrno書き込んだときにクリアしました。"Unable to open catalogue: "cerr

errnoの値をすぐに保存する必要があります。

cat = catopen(fileName.c_str(), 0); 

if (cat == (nl_catd)-1) 

{ 
   int errno_catopen = errno;
   cerr << "Unable to open catalogue: " << fileName <<" ....and the Error number: "<<errno_catopen <<"\n";
   exit(errno_catopen);
} 
于 2012-03-14T13:59:00.460 に答える