From: cas Date: Wed, 3 Nov 1999 18:05:01 +0000 (+0000) Subject: No comments X-Git-Url: http://git.dev.opencascade.org/gitweb/?a=commitdiff_plain;h=5057c595ae228528ec55a9a195ef28fadf003cee;p=occt-wok.git No comments --- diff --git a/src/WOKUnix/WOKUnix_FDescr.cdl b/src/WOKUnix/WOKUnix_FDescr.cdl index 8c9b757..cd15a24 100755 --- a/src/WOKUnix/WOKUnix_FDescr.cdl +++ b/src/WOKUnix/WOKUnix_FDescr.cdl @@ -43,6 +43,4 @@ is Stdout(myclass) returns FDescr from WOKUnix; Stderr(myclass) returns FDescr from WOKUnix; -fields - myFILE : Address from Standard; end; diff --git a/src/WOKUnix/WOKUnix_FDescr.cxx b/src/WOKUnix/WOKUnix_FDescr.cxx index 5a71d94..20b913c 100755 --- a/src/WOKUnix/WOKUnix_FDescr.cxx +++ b/src/WOKUnix/WOKUnix_FDescr.cxx @@ -26,6 +26,10 @@ extern int errno; const OSD_WhoAmI Iam = OSD_WFile; +#ifdef LIN +static FILE* _wokunix_fdopen ( int ); +#endif // LIN + //======================================================================= //function : WOKUnix_FDescr //purpose : @@ -39,7 +43,14 @@ WOKUnix_FDescr::WOKUnix_FDescr() //function : WOKUnix_FDescr //purpose : //======================================================================= -WOKUnix_FDescr::WOKUnix_FDescr(const Standard_Integer afd) {myFileChannel = afd;myFILE = fdopen(afd, "r");} +WOKUnix_FDescr::WOKUnix_FDescr(const Standard_Integer afd) { + myFileChannel = afd; +#ifndef LIN + myFILE = fdopen(afd, "r"); +#else + myFILE = _wokunix_fdopen ( afd ); +#endif // LIN +} //======================================================================= //function : WOKUnix_FDescr @@ -48,8 +59,12 @@ WOKUnix_FDescr::WOKUnix_FDescr(const Standard_Integer afd) {myFileChannel = afd; WOKUnix_FDescr::WOKUnix_FDescr(const Standard_Integer afd, const Handle(TCollection_HAsciiString)& apath) { myFileChannel = afd; +#ifndef LIN myFILE = fdopen(afd, "r"); - SetPath(apath->String()); +#else + myFILE = _wokunix_fdopen ( afd ); +#endif // LIN + SetPath(apath->String()); } //======================================================================= @@ -389,8 +404,40 @@ WOKUnix_FDescr WOKUnix_FDescr::Stderr() return StderrFD; } +#ifdef LIN +static FILE* _wokunix_fdopen ( int fd ) { + + char* fdMode; + int mode = fcntl ( fd, F_GETFL ); + + switch ( mode & O_ACCMODE ) { + + case O_RDONLY: + + fdMode = "r"; + + break; + + case O_WRONLY: + + fdMode = "w"; + + break; + + case O_RDWR: + + fdMode = "r+"; + + break; + + } // end switch + FILE* retVal = fdopen ( fd, fdMode ); + if ( retVal == NULL ) perror ( "fdopen" ); + return retVal; +} // end _wokunix_fdopen +#endif // LIN diff --git a/src/WOKUnix/WOKUnix_MaxPipeSize.hxx b/src/WOKUnix/WOKUnix_MaxPipeSize.hxx index c07d95b..723d4d3 100755 --- a/src/WOKUnix/WOKUnix_MaxPipeSize.hxx +++ b/src/WOKUnix/WOKUnix_MaxPipeSize.hxx @@ -21,6 +21,9 @@ #elif SOLARIS #include #define MAX_PIPE_SIZE PIPE_MAX +#elif defined(LIN) +#include +#define MAX_PIPE_SIZE PIPE_BUF #endif diff --git a/src/WOKUnix/WOKUnix_Signal.cxx b/src/WOKUnix/WOKUnix_Signal.cxx index 752375b..1be1356 100755 --- a/src/WOKUnix/WOKUnix_Signal.cxx +++ b/src/WOKUnix/WOKUnix_Signal.cxx @@ -5,7 +5,10 @@ #include #include -#ifndef HPUX +#ifdef LIN +#include +#include +#elif !defined(HPUX) #include #endif @@ -79,6 +82,9 @@ void WOKUnix_Signal::Arm(const WOKUnix_SigHandler& ahandler) act.sa_mask.__sigbits[2] = 0; act.sa_mask.__sigbits[3] = 0; act.sa_flags = 0; +#elif defined(LIN) + sigemptyset(&act.sa_mask) ; + act.sa_flags = 0; #else act.sa_mask = 0; act.sa_flags = 0;