Re: Win32 testing needed

Поиск
Список
Период
Сортировка
От Andreas Pflug
Тема Re: Win32 testing needed
Дата
Msg-id 4113D0E4.60703@pse-consulting.de
обсуждение исходный текст
Ответ на Re: Win32 testing needed  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: Win32 testing needed
Список pgsql-hackers-win32
Tom Lane wrote:
>                 if (dup2(_open_osfhandle((long)syslogPipe[1],
>                                          _O_APPEND | _O_TEXT),
>                          _fileno(stderr)) < 0)
>                     ereport(FATAL,
>                             (errcode_for_file_access(),
>                              errmsg("could not redirect stderr: %m")));
>                 /* Now we are done with the write end of the pipe. */
>                 CloseHandle(syslogPipe[1]);
>                 syslogPipe[1] = 0;
>
> One question about this: isn't this coding leaking a file descriptor?
> That is, shouldn't we catch the result of _open_osfhandle and do a
> CloseHandle on it after the dup2 step?

Yes, it does.
int fd=_open_osfhandle(....);    // additional fdes from winhandle
_dup2(fd, ...)
close(fd);


>
> BTW, is it correct to use 0 as "invalid handle"?  Or should we be using
> -1 or some such?

0 is usually ok, valid handles are never 0. The official value is
INVALID_HANDLE_VALUE which expands to (HANDLE)-1.


>
>
>>Now, the pipe ReadFile will receive completely formatted data, which
>>must be written binary (otherwise we will get CRCRLF), OTOH, the
>>logger's calls to write_syslogger_file should write in text mode or
>>replace \n by \r\n. Seems we need another function for elog to call.
>
>
> Yeah.  What do you think is the most convenient way to do that?  I'd
> be inclined to build a function that just expands \n to \r\n and then
> calls write_syslogger_file, but maybe there's an easier way.

We could have *two* handles open to the syslogger file, but that's
probably more fragile. Making the current write_syslogger_file static
and providing another function that converts in a local buffer and
calles write_syslogger_file seems best.

Regards,
Andreas


В списке pgsql-hackers-win32 по дате отправления:

Предыдущее
От: Andreas Pflug
Дата:
Сообщение: Re: Win32 testing needed
Следующее
От: Andreas Pflug
Дата:
Сообщение: Re: Win32 testing needed