Frage

Catopen kann dieselbe Cat-Datei nicht auf verschiedenen Servern mit demselben Setup öffnen.

Wenn errno 0 ist, bedeutet das nach meinem Verständnis, dass kein Fehler vorliegt.

Bitte sagen Sie mir, ob jemand so etwas schon einmal gesehen hat.Wenn jemand den Grund dafür kennt, wäre das für mich sehr hilfreich

Beispielcode, den ich geschrieben habe

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);

}

Ausgabe für den obigen Code

Für einen erfolgreichen Fall:

./a.out

Enter the cat file name: LinkMonitor.epod.cat

File opened...

Für den Fehlerfall:

./a.out

Enter the cat file name: ehap_ac_in.epod.cat

Unable to open catalogue: ehap_ac_in.epod.cat0

Hier ist 0 der Fehlercode.

War es hilfreich?

Lösung

Du hast es geschafft errno als Sie die Zeichenfolge geschrieben haben "Unable to open catalogue: " Zu cerr.

Sie müssen den Wert speichern errno sofort.

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);
} 
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top