Ticket #38830

_POSIX_SOURCE 宣言により mkstemp が隠される

Eröffnet am: 2018-12-31 19:03 Letztes Update: 2019-07-24 07:09

Auswertung:
Verantwortlicher:
(Keine)
Typ:
Status:
Geschlossen
Komponente:
(Keine)
Meilenstein:
(Keine)
Priorität:
5 - Mittel
Schweregrad:
5 - Mittel
Lösung:
Gefixt
Datei:
Keine

Details

skf_finfo.c の先頭で、_POSIX_SOURCE マクロが定義されていますが、これはかなり古いマクロなので、 たとえば glibc で見ても _POSIX_C_SOURCE=1 相当になるようで、mkstemp は見えなくなります。 glibc の場合、 次に定義されている これも古い _BSD_SOURCE マクロによって見えるようになるかもしれませんが、 他のlibc ではそうでもありません。たとえば NetBSD-8 では見えませんが _NETBSD_SOURCE では見えるようになります。

X/Open 的には mkstemp は Issue 4 Version 2 で拡張として追加されて、Issue 5 で base に入ったので、 defined(_XOPEN_SOURCE) && defined(_XOPEN_SOURCE_EXTENDED) || (_XOPEN_SOURCE >= 500) の必要があります。

skf_finfo.c の履歴上、二つのマクロがどういう必要性で入ったのかがわからないのですが、 ご考慮していただければ幸いです。

Ticket-Verlauf (3/4 Historien)

2018-12-31 19:03 Aktualisiert von: obache
  • New Ticket "_POSIX_SOURCE 宣言により mkstemp が隠される" created
2019-02-05 22:59 Aktualisiert von: efialtes
Kommentar

一応

(1) POSIX_SOURCE は削除 (元々 LFS 関連で遙か昔に入ったような気がする)。

(2) POSIX_C_SOURCE を追加して、200112L を定義する。

(3) _XOPEN_SOURCE, _X_OPEN_SOURCE_EXTENDED は定義だけする。_XOPEN_SOURCE に値は設定しない (XOPEN SOURCE 関連は追っていないので影響が読めない)

で修正します。他もあるので、修正自体は少し待ってください。

2019-04-06 22:51 Aktualisiert von: efialtes
  • Lösung Update from Keine to Gefixt
2019-07-24 07:09 Aktualisiert von: efialtes
  • Status Update from Offen to Geschlossen

Dateianhangliste

Keine Anhänge

Bearbeiten

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Anmelden