Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sergio Pessanha

erro fatal em função Dup do c++

Recommended Posts

Tenho um aplicativo no formato win32console application, utilizando uma lib especifica de tratamento de imagens.

Neste aplicativo eu processo 2 vezes a mesma função(prepareCmdLineArgs), pertencente a esta lib, que gerencia linha de comando , passando parametros diferentes.

Na primeira vez, o processamento acontece sem erro, no entanto, na segunda, gera um erro fatal.

 

Abaixo, conteudo da função: prepareCmdLineArgs

 

#define INCLUDE_CSTDLIB

#define INCLUDE_CSTDIO

#define INCLUDE_CSTRING

#include "dcmtk/ofstd/ ofstdinc. h"

 

#ifdef HAVE_IO_H

#include <io.h>

#endif

 

#include "dcmtk/ofstd/ ofstream. h"

 

void prepareCmdLineArgs( int& /* argc */, char** /* argv */,

const char* /* progname */)

{

#ifdef _WIN32

#ifndef DCMTK_GUI

#ifndef __CYGWIN__

/* Map stderr onto stdout (cannot redirect stderr under windows).

* Remove any buffering (windows uses a 2k buffer for stdout when not

* writing to the console. since dcmtk uses mixed stdout, stderr

* cout and cerr, this results in _very_ mixed up output).

*/

 

/* duplicate the stderr file descriptor be the same as stdout */

close(fileno( stderr));

int fderr = dup(fileno(stdout) );

if (fderr != fileno(stderr) )

{

ofConsole.lockCerr( ) << "INTERNAL ERROR: cannot map stderr to stdout: " << strerror(errno) << endl;

ofConsole.unlockCer r();

}

 

na linha em negrito, a função dup do C++ é chamada, e em seguida ocorre o seguinte erro fatal:

dup.c

line 52

(_osfile(fh)& fopen)

 

Alguem pode me dar alguma luz?

 

 

obs: tenho pouco conhecimento em C++

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.