Austin Group Defect Tracker

Aardvark Mark IV


Viewing Issue Simple Details Jump to Notes ] Issue History ] Print ]
ID Category Severity Type Date Submitted Last Update
0001673 [Issue 8 drafts] Rationale Comment Error 2023-04-18 15:01 2023-07-03 10:52
Reporter geoffclare View Status public  
Assigned To
Priority normal Resolution Accepted  
Status Applied   Product Version Draft 3
Name Geoff Clare
Organization The Open Group
User Reference
Section B.3.1
Page Number 3803-3806
Line Number 131760-131838
Final Accepted Text
Summary 0001673: Rationale about removed interfaces needs updating
Description XRAT B.3.1 lists the interfaces removed in the revision and gives advice about what to use instead. Updating it is not a purely editorial matter since the advice given needs to be reviewed.

In the proposed changes I did not think it worth listing the functions that were in the STREAMS and Tracing options individually.
Desired Action Replace the entire contents of B.3.1 (and its subsections) with:
This section contains a list of options and interfaces removed in POSIX.1-202x, together with advice for application developers on the alternative interfaces that should be used.
B.3.1.1 STREAMS Option
Applications are recommended to use UNIX domain sockets as an alternative for much of the functionality provided by this option. For example, file descriptor passing can be performed using sendmsg() and recvmsg() with SCM_RIGHTS on a UNIX domain socket instead of using ioctl() with I_SENDFD and I_RECVFD on a STREAM.
B.3.1.2 Tracing Option
Applications are recommended to use implementation-provided extension interfaces instead of the functionality provided by this option. (Such interfaces were in widespread use before the Tracing option was added to POSIX.1 and continued to be used in preference to the Tracing option interfaces.)
B.3.1.3 _longjmp() and _setjmp()
Applications are recommended to use siglongjmp() and sigsetjmp() instead of these functions.
B.3.1.4 _tolower() and _toupper()
Applications are recommended to use tolower() and toupper() instead of these functions.
B.3.1.5 ftw()
Applications are recommended to use nftw() instead of this function.
B.3.1.6 getitimer() and setitimer()
Applications are recommended to use timer_gettime() and timer_settime() instead of these functions.
B.3.1.7 gets()
Applications are recommended to use fgets() instead of this function.
B.3.1.8 gettimeofday()
Applications are recommended to use clock_gettime() instead of this function.
B.3.1.9 isascii() and toascii()
Applications are recommended to use macros equivalent to the following instead of these functions:
#define isascii(c) (((c) & ~0177) == 0)
#define toascii(c) ((c) & 0177)
An alternative replacement for isascii(), depending on the intended outcome if the code is ported to implementations with different character encodings, might be:
#define isascii(c) (isprint((c)) || iscntrl((c)))
(In the C or POSIX locale, this determines whether c is a character in the portable character set.)
B.3.1.10 pthread_getconcurrency() and pthread_setconcurrency()
Applications are recommended to use thread scheduling (on implementations that support the Thread Execution Scheduling option) instead of these functions; see [xref to XSH 2.9.4 Thread Scheduling].
B.3.1.11 rand_r()
Applications are recommended to use nrand48() or random() instead of this function.
B.3.1.12 setpgrp()
Applications are recommended to use setpgid() or setsid() instead of this function.
B.3.1.13 sighold(), sigpause(), and sigrelse()
Applications are recommended to use pthread_sigmask() or sigprocmask() instead of these functions.
B.3.1.14 sigignore(), siginterrupt(), and sigset()
Applications are recommended to use sigaction() instead of these functions.
B.3.1.15 tempnam()
Applications are recommended to use mkdtemp(), mkstemp(), or tmpfile() instead of this function.
B.3.1.16 ulimit()
Applications are recommended to use getrlimit() or setrlimit() instead of this function.
B.3.1.17 utime()
Applications are recommended to use futimens() if a file descriptor for the file is open, otherwise utimensat(), instead of this function.

Tags applied_after_i8d3, issue8
Attached Files

- Relationships

There are no notes attached to this issue.

- Issue History
Date Modified Username Field Change
2023-04-18 15:01 geoffclare New Issue
2023-04-18 15:01 geoffclare Name => Geoff Clare
2023-04-18 15:01 geoffclare Organization => The Open Group
2023-04-18 15:01 geoffclare Section => B.3.1
2023-04-18 15:01 geoffclare Page Number => 3803-3806
2023-04-18 15:01 geoffclare Line Number => 131760-131838
2023-06-12 15:54 Don Cragun Status New => Resolved
2023-06-12 15:54 Don Cragun Resolution Open => Accepted
2023-06-12 15:56 Don Cragun Tag Attached: issue8
2023-07-03 10:52 geoffclare Status Resolved => Applied
2023-07-03 10:53 geoffclare Tag Attached: applied_after_i8d3


Mantis 1.1.6[^]
Copyright © 2000 - 2008 Mantis Group
Powered by Mantis Bugtracker