1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
|
==================== Changes in man-pages-4.01 ====================
Released: ????-??-??, Munich
Contributors
------------
The following people contributed patches/fixes or (noted in brackets
in the changelog below) reports, notes, and ideas that have been
incorporated in changes in this release:
Alexei Starovoitov <ast@plumgrid.com>
Andries E. Brouwer <Andries.Brouwer@cwi.nl>
Arjun Shankar <arjun@redhat.com>
Ashish Sangwan <a.sangwan@samsung.com>
Ben Woodard <woodard@redhat.com>
Carlos O'Donell <carlos@redhat.com>
Christoph Thompson <cjsthompson@gmail.com>
Cortland Setlow <cortland.setlow@gmail.com>
Daniel Borkmann <daniel@iogearbox.net>
David Leppik <dleppik@vocalabs.com>
Dilyan Palauzov <dilyan.palauzov@aegee.org>
Doug Klima <cardoe@gentoo.org>
Eric B Munson <emunson@akamai.com>
Florian Weimer <fweimer@redhat.com>
Hack NDo <hackndo@gmail.com>
Jann Horn <jann@thejh.net>
Jens Axboe <axboe@fb.com>
Jian Wen <wenjianhn@gmail.com>
Joerg Roedel <jroedel@suse.de>
Julian Orth <ju.orth@gmail.com>
Kees Cook <keescook@chromium.org>
Laszlo Ersek <lacos@caesar.elte.hu>
Marko Myllynen <myllynen@redhat.com>
Mehdi Aqadjani Memar <m.aqadjanimemar@student.vu.nl>
Michael Kerrisk <mtk.manpages@gmail.com>
Michal Hocko <mhocko@suse.cz>
Mike Frysinger <vapier@gentoo.org>
Mike Hayward <hayward@loup.net>
Miklos Szeredi <miklos@szeredi.hu>
Namhyung Kim <namhyung@gmail.com>
Namjae Jeon <namjae.jeon@samsung.com>
Nathan Lynch <nathan_lynch@mentor.com>
NeilBrown <neilb@suse.de>
Pádraig Brady <P@draigBrady.com>
Pavel Machek <pavel@ucw.cz>
Peter Hurley <peter@hurleysoftware.com>
Sam Varshavchik <mrsam@courier-mta.com>
Scot Doyle <lkml14@scotdoyle.com>
Stephan Mueller <stephan.mueller@atsec.com>
Tobias Stoeckmann <tobias@stoeckmann.org>
Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
Uwe Kleine-König <uwe+debian@kleine-koenig.org>
Vegard Nossum <vegard.nossum@oracle.com>
Ville Skyttä <ville.skytta@iki.fi>
Vince Weaver <vincent.weaver@maine.edu>
Zeng Linggang <zenglg.jy@cn.fujitsu.com>
文剑 <wenjianhn@gmail.com>
Apologies if I missed anyone!
New and rewritten pages
-----------------------
bpf.2
Alexei Starovoitov, Michael Kerrisk [Daniel Borkmann]
New page documenting bpf(2)
__ppc_get_timebase.3
Tulio Magno Quites Machado Filho
New page documenting __ppc_get_timebase() and __ppc_get_timebase_freq()
Glibc 2.16 was released with a new function for the Power
architecture that can read its Time Base Register.
Glibc 2.17 adds a function to read the frequency at which the Time
Base Register of Power processors is updated.
queue.3
Michael Kerrisk [David Leppik, Doug Klima]
Reimport from latest FreeBSD page
Long ago, Doug Klima noted that many macros were not
documented in the queue(3) page. Fix by reimporting from
latest [1] FreeBSD man page.
[1] Revision 263142, Modified Fri Mar 14 03:07:51 2014 UTC
This also fixes https://sourceware.org/bugzilla/show_bug.cgi?id=1506
This time, I'll learn from past mistakes and not convert
from 'mdoc' to 'man' macros.
Michael Kerrisk
Use subsections in DESCRIPTION
Michael Kerrisk
Remove SEE ALSO reference to nonexistent tree(3)
Michael Kerrisk
Use real hyphens in code samples
Michael Kerrisk
Comment out text for functions not in glibc
Michael Kerrisk
Replace HISTORY with CONFORMING TO
Newly documented interfaces in existing pages
---------------------------------------------
rename.2
Michael Kerrisk [Miklos Szeredi]
Document RENAME_WHITEOUT
Heavily based on text by Miklos Szeredi.
New and changed links
---------------------
__ppc_get_timebase_freq.3
Tulio Magno Quites Machado Filho
New link to new __ppc_get_timebase(3) page
LIST_EMPTY.3
LIST_FIRST.3
LIST_FOREACH.3
LIST_HEAD_INITIALIZER.3
LIST_INSERT_BEFORE.3
LIST_NEXT.3
SLIST_EMPTY.3
SLIST_ENTRY.3
SLIST_FIRST.3
SLIST_FOREACH.3
SLIST_HEAD.3
SLIST_HEAD_INITIALIZER.3
SLIST_INIT.3
SLIST_INSERT_AFTER.3
SLIST_INSERT_HEAD.3
SLIST_NEXT.3
SLIST_REMOVE.3
SLIST_REMOVE_HEAD.3
STAILQ_CONCAT.3
STAILQ_EMPTY.3
STAILQ_ENTRY.3
STAILQ_FIRST.3
STAILQ_FOREACH.3
STAILQ_HEAD.3
STAILQ_HEAD_INITIALIZER.3
STAILQ_INIT.3
STAILQ_INSERT_AFTER.3
STAILQ_INSERT_HEAD.3
STAILQ_INSERT_TAIL.3
STAILQ_NEXT.3
STAILQ_REMOVE.3
STAILQ_REMOVE_HEAD.3
TAILQ_CONCAT.3
TAILQ_EMPTY.3
TAILQ_FIRST.3
TAILQ_FOREACH.3
TAILQ_FOREACH_REVERSE.3
TAILQ_HEAD_INITIALIZER.3
TAILQ_INSERT_BEFORE.3
TAILQ_LAST.3
TAILQ_NEXT.3
TAILQ_PREV.3
TAILQ_SWAP.3
Michael Kerrisk
New links to queue.3
Global changes
--------------
Various pages
Michael Kerrisk [Andries E. Brouwer]
Remove "ABI" from "C library/kernel ABI differences" subheadings
The "ABI" doesn't really convey anything significant in
the title. These subsections are about describing differences
between the kernel and (g)libc interfaces.
Changes to individual pages
---------------------------
intro.1
Michael Kerrisk [Andries E. Brouwer]
Drop intro paragraph on '$?' shell variable
As Andries notes, this piece of text is rather out of place in
a page that was intended to provide a tutorial introduction for
beginners logging in on a Linux system.
locale.1
Marko Myllynen
A minor output format clarification
A minor clarification for the locale output format which was
brought up at
https://sourceware.org/bugzilla/show_bug.cgi?id=18516.
For reference, see
https://sourceware.org/bugzilla/show_bug.cgi?id=18516
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/locale.html
Add CONFORMING TO section
capget.2
Julian Orth
Clarify that hdrp->pid==0 is equivalent gettid() not getpid()
chroot.2
Jann Horn
chroot() is not intended for security; document attack
It is unfortunate that this discourages this use of chroot(2)
without pointing out alternative solutions - for example,
OpenSSH and vsftpd both still rely on chroot(2) for security.
Bind mounts should theoretically be usable as a replacement, but
currently, they have a similar problem (CVE-2015-2925) that hasn't
been fixed in ~6 months, so I'd rather not add it to the manpage
as a solution before a fix lands.
clock_getres.2
Zeng Linggang
ATTRIBUTES: Note functions that are thread-safe
eventfd.2
Zeng Linggang
ATTRIBUTES: Note function that is thread-safe
execve.2
Michael Kerrisk
Elaborate on envp/argv as NULL behavior
_exit.2
Michael Kerrisk
Open stdio frames are not flushed, temporary files are deleted
Many years ago, text was added to the page saying that it is
implementation-dependent whether stdio streams are flushed and
whether temporary are removed. In part, this change appears to
be because POSIX.1-2001 added text related to this point.
However, that seems to have been an error in POSIX, and the
text was subsequently removed for POSIX.1-2008. See
https://collaboration.opengroup.org/austin/interps/documents/9984/AI-085.txt
Austin Group Interpretation reference 1003.1-2001 #085
fallocate.2
Namjae Jeon [Michael Kerrisk]
Document FALLOC_FL_INSERT_RANGE
Michael Kerrisk
Since Linux 4.2, ext4 supports FALLOC_FL_INSERT_RANGE
fcntl.2
Michael Kerrisk
OFD locks are proposed for inclusion in the next POSIX revision
getrlimit.2
Zeng Linggang
ATTRIBUTES: Note functions that are thread-safe
getrusage.2
Zeng Linggang
ATTRIBUTES: Note function that is thread-safe
gettid.2
Michael Kerrisk
Note that for a thread group leader, gettid() == getpid()
iopl.2
Michael Kerrisk
Remove some historical libc5 and glibc 1 details
These details are ancient, and long ago ceased to be relevant.
ioprio_set.2
Michael Kerrisk [Jens Axboe]
Document meaning of ioprio==0
mlock.2
Michael Kerrisk [Mehdi Aqadjani Memar]
Document another ENOMEM error case
ENOMEM can occur if locking/unlocking in the middle of a region
would increase the number of VMAs beyond the system limit (64k).
mmap.2
Michal Hocko [Eric B Munson]
Clarify MAP_POPULATE
David Rientjes has noticed that MAP_POPULATE wording might promise
much more than the kernel actually provides and intends to provide.
The primary usage of the flag is to pre-fault the range. There is
no guarantee that no major faults will happen later on. The pages
might have been reclaimed by the time the process tries to access
them.
Michal Hocko [Eric B Munson]
Clarify MAP_LOCKED semantics
MAP_LOCKED had a subtly different semantic from mmap(2)+mlock(2)
since it has been introduced.
mlock(2) fails if the memory range cannot get populated to
guarantee that no future major faults will happen on the range.
mmap(MAP_LOCKED) on the other hand silently succeeds even if
the range was populated only partially.
Fixing this subtle difference in the kernel is rather awkward
because the memory population happens after mm locks have been
dropped and so the cleanup before returning failure (munlock)
could operate on something else than the originally mapped area.
E.g. speculative userspace page fault handler catching SEGV and
doing mmap(fault_addr, MAP_FIXED|MAP_LOCKED) might discard portion
of a racing mmap and lead to lost data. Although it is not clear
whether such a usage would be valid, mmap page doesn't explicitly
describe requirements for threaded applications so we cannot
exclude this possibility.
This patch makes the semantic of MAP_LOCKED explicit and suggests
using mmap + mlock as the only way to guarantee no later major
page faults.
Michael Kerrisk
ERRORS: point out that ENOMEM can occur even for munmap()
mprotect.2
Michael Kerrisk
Note ENOMEM error that can occur when we reach limit on maximum VMAs
open.2
read.2
write.2
Michael Kerrisk [Mike Hayward]
Clarify that O_NONBLOCK is a no-op for regular files and block devices
perf_event_open.2
Vince Weaver [Joerg Roedel]
Exclude_host/exclude_guest clarification
This patch relates to the exclude_host and exclude_guest bits added
by the following commit:
exclude_host, exclude_guest; Linux 3.2
commit a240f76165e6255384d4bdb8139895fac7988799
Author: Joerg Roedel <joerg.roedel@amd.com>
Date: Wed Oct 5 14:01:16 2011 +0200
perf, core: Introduce attrs to count in either host or guest mode
The updated manpage text clarifies that the "exclude_host" and
"exclude_guest" perf_event_open() attr bits only apply in the
context of a KVM environment and are currently x86 only.
Vince Weaver
Document PERF_SAMPLE_REGS_INTR
This patch relates to the addition of PERF_SAMPLE_REGS_INTR
support added in the following commit:
perf_sample_regs_intr; Linux 3.19
commit 60e2364e60e86e81bc6377f49779779e6120977f
Author: Stephane Eranian <eranian@google.com>
perf: Add ability to sample machine state on interrupt
The primary difference between PERF_SAMPLE_REGS_INTR and the
existing PERF_SAMPLE_REGS_USER is that the new support will
return kernel register values. Also if precise_ip is
set higher than 0 then the PEBS register state will be returned
rather than the saved interrupt state.
This patch incorporates feedback from Stephane Eranian and
Andi Kleen.
prctl.2
seccomp.2
Michael Kerrisk
Clarify that SECCOMP_SET_MODE_STRICT disallows exit_group(2)
These days, glibc implements _exit() as a wrapper around
exit_group(2). (When seccomp was originally introduced, this was
not the case.) Give the reader a clue that, despite what glibc is
doing, what SECCOMP_SET_MODE_STRICT permits is the true _exit(2)
system call, and not exit_group(2).
pread.2
read.2
readv.2
sendfile.2
write.2
Michael Kerrisk
Clarify that Linux limits transfers to a maximum of 0x7ffff000 bytes
See https://bugs.debian.org/629994 and
https://bugs.debian.org/630029.
pread.2
Michael Kerrisk
Rewrite RETURN VALUE section
(Also drop the text on pwrite() returning zero; that seems bogus.)
ptrace.2
Michael Kerrisk [Vegard Nossum]
PTRACE_O_TRACEEXIT clarification
readv.2
Michael Kerrisk
Remove BUGS heading
The text on mixinf I/O syscalls and stdio is a general point
of behavior. It's not a bug as such.
recv.2
send.2
Michael Kerrisk
Explain some subtleties of MSG_DONTWAIT versus O_NONBLOCK
rename.2
Michael Kerrisk
Michael Kerrisk
Note that RENAME_NOREPLACE can't be employed with RENAME_EXCHANGE
sched_setaffinity.2
Michael Kerrisk
Add an example program
Michael Kerrisk [Florian Weimer]
Explain how to deal with 1024-CPU limitation of glibc's cpu_set_t type
Michael Kerrisk
Mention the use of the 'isolcpus' kernel boot option
sched_setattr.2
Julian Orth
Remove a const attribute
The attr argument of sched_setattr was documented as const but the
kernel will modify the size field of this struct if it contains an
invalid value. See the documentation of the size field for details.
seccomp.2
Michael Kerrisk
SEE ALSO: add bpf(2)
send.2
Michael Kerrisk
Expand on subtleties of MSG_NOSIGNAL versus ignoring SIGPIPE
sigaltstack.2
Zeng Linggang
ATTRIBUTES: Note function that is thread-safe
socket.2
Stephan Mueller
Update documentation reference for AF_ALG
truncate.2
Michael Kerrisk
ERRORS: ftruncate() can fail if the file descriptor is not writable
utimensat.2
Zeng Linggang
ATTRIBUTES: Note functions that are thread-safe
After research, We think utimensat() and futimens() are thread-safe.
But, there are not markings of utimensat() and futimens() in glibc
document.
clearenv.3
Zeng Linggang
ATTRIBUTES: Note function that is not thread-safe
dl_iterate_phdr.3
Zeng Linggang
ATTRIBUTES: Note function that is thread-safe
error.3
Zeng Linggang
ATTRIBUTES: Note functions that are/aren't thread-safe
fexecve.3
Zeng Linggang
ATTRIBUTES: Note function that is thread-safe
fpurge.3
Zeng Linggang
ATTRIBUTES: Note function that is thread-safe
fread.3
Andries E. Brouwer
Clarify terminology
In the "RETURN VALUE" section the word item is in italics
as if it were one of the function parameters. But the word
"item" occurs here for the first time, earlier the text
uses "element". [Patch improves this.]
fts.3
Zeng Linggang
ATTRIBUTES: Note functions that are/aren't thread-safe
getaddrinfo.3
Zeng Linggang
ATTRIBUTES: Note functions that are thread-safe
getaddrinfo_a.3
Zeng Linggang
ATTRIBUTES: Note functions that are thread-safe
getauxval.3
Michael Kerrisk
File capabilities also trigger AT_SECURE
Michael Kerrisk
(Briefly) document AT_HWCAP2
getgrent_r.3
Zeng Linggang
ATTRIBUTES: Note functions that are/aren't thread-safe
gethostbyname.3
Michael Kerrisk [Laszlo Ersek]
Remove mention of IPv6 addresses, which are not supported
As reported by Laszlo Ersek:
gethostbyname(3) fails to resolve the IPv6 address "::1",
but the manual page says: "If name is an IPv4 or IPv6 address,
no lookup is performed and gethostbyname() simply copies name
into the h_name field [...]".
Debian bug report:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=455762
glibc bug report:
http://sourceware.org/bugzilla/show_bug.cgi?id=5479
SUSv3 link for gethostbyname(3):
http://www.opengroup.org/onlinepubs/000095399/functions/gethostbyname.html
It seems that the glibc behavior is conformant, and the manual
page is in error.
getifaddrs.3
Zeng Linggang
ATTRIBUTES: Note functions that are thread-safe
getnameinfo.3
Zeng Linggang
ATTRIBUTES: Note function that is thread-safe
getnetent_r.3
Zeng Linggang
ATTRIBUTES: Note functions that are thread-safe
getprotoent.3
Zeng Linggang
ATTRIBUTES: Note functions that aren't thread-safe
getprotoent_r.3
Zeng Linggang
ATTRIBUTES: Note functions that are thread-safe
getpw.3
Zeng Linggang
ATTRIBUTES: Note function that is thread-safe
getpwent_r.3
Zeng Linggang
ATTRIBUTES: Note functions that are/aren't thread-safe
getrpcent.3
Zeng Linggang
ATTRIBUTES: Note functions that are/aren't thread-safe
getrpcent_r.3
Zeng Linggang
ATTRIBUTES: Note functions that are thread-safe
getrpcport.3
Zeng Linggang
ATTRIBUTES: Note function that is thread-safe
getservent.3
Zeng Linggang
ATTRIBUTES: Note functions that aren't thread-safe
getservent_r.3
Zeng Linggang
ATTRIBUTES: Note functions that are thread-safe
gsignal.3
Zeng Linggang
ATTRIBUTES: Note functions that are thread-safe
key_setsecret.3
Zeng Linggang
ATTRIBUTES: Note functions that are thread-safe
malloc_get_state.3
Zeng Linggang
ATTRIBUTES: Note functions that are thread-safe
malloc_info.3
Zeng Linggang
ATTRIBUTES: Note function that is thread-safe
malloc_stats.3
Zeng Linggang
ATTRIBUTES: Note function that is thread-safe
malloc_trim.3
Zeng Linggang
ATTRIBUTES: Note function that is thread-safe
MB_LEN_MAX.3
Michael Kerrisk
Clarify meaning of MB_LEN_MAX
Michael Kerrisk [Pádraig Brady]
MB_LEN_MAX is 16 in modern glibc versions
memcpy.3
Michael Kerrisk
NOTES: describe the glibc 2.13 changes that revealed buggy applications
Adding a note on this point seems worthwhile as a way of
emphasizing the point that the buffers must not overlap.
mq_notify.3
Zeng Linggang
ATTRIBUTES: Note function that is thread-safe
perror.3
Michael Kerrisk
Some wording improvements and clarifications
profil.3
Zeng Linggang
ATTRIBUTES: Note function that is not thread-safe
psignal.3
Zeng Linggang
ATTRIBUTES: Note functions that are thread-safe
pthread_attr_init.3
Zeng Linggang
ATTRIBUTES: Note functions that are thread-safe
Michael Kerrisk
Use "%zd" for printing size_t in example code
pthread_attr_setaffinity_np.3
Zeng Linggang
ATTRIBUTES: Note functions that are thread-safe
pthread_cancel.3
Zeng Linggang
ATTRIBUTES: Note function that is thread-safe
pthread_cleanup_push.3
Zeng Linggang
ATTRIBUTES: Note functions that are thread-safe
pthread_create.3
Zeng Linggang
ATTRIBUTES: Note function that is thread-safe
pthread_detach.3
Zeng Linggang
ATTRIBUTES: Note function that is thread-safe
pthread_getattr_np.3
Zeng Linggang
ATTRIBUTES: Note function that is thread-safe
pthread_join.3
Zeng Linggang
ATTRIBUTES: Note function that is thread-safe
pthread_setname_np.3
Zeng Linggang
ATTRIBUTES: Note functions that are thread-safe
pthread_tryjoin_np.3
Zeng Linggang
ATTRIBUTES: Note functions that are thread-safe
putgrent.3
Zeng Linggang
ATTRIBUTES: Note function that is thread-safe
rcmd.3
Zeng Linggang
ATTRIBUTES: Note functions that are/aren't thread-safe
resolver.3
Zeng Linggang
ATTRIBUTES: Note functions that are thread-safe
rpc.3
Zeng Linggang
ATTRIBUTES: Note functions that are thread-safe
rpmatch.3
Zeng Linggang
ATTRIBUTES: Note function that is thread-safe
sem_close.3
Zeng Linggang
ATTRIBUTES: Note function that is thread-safe
sem_open.3
Zeng Linggang
ATTRIBUTES: Note function that is thread-safe
setaliasent.3
Zeng Linggang
ATTRIBUTES: Note functions that are/aren't thread-safe
setlocale.3
Marko Myllynen
Update CONFORMING TO
http://pubs.opengroup.org/onlinepubs/9699919799/functions/setlocale.html
setlocale.3
Marko Myllynen
Tweak C/POSIX locale portability description
As discussed earlier, the current description might be a little
bit too stringent, let's avoid the issue by describing the
portability aspect on a slightly higher level.
References:
http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap06.html
http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap07.html
http://pubs.opengroup.org/onlinepubs/9699919799/functions/setlocale.html
shm_open.3
Zeng Linggang
ATTRIBUTES: Note functions that are thread-safe
strfmon.3
Marko Myllynen
Document strfmon_l(3)
Describe strfmon_l(3).
http://pubs.opengroup.org/onlinepubs/9699919799/functions/strfmon.html
Marko Myllynen
Fix CONFORMING TO
AFAICS strfmon(3) is now defined in POSIX and the glibc
implementation is as specified there.
http://pubs.opengroup.org/onlinepubs/9699919799/functions/strfmon.html
Marko Myllynen
Rewrite the example
I think the example is more accurate when we use the exact
locale names and also the Euro sign where appropriate.
xcrypt.3
Zeng Linggang
ATTRIBUTES: Note functions that are thread-safe
xdr.3
Zeng Linggang
ATTRIBUTES: Note functions that are thread-safe
console_codes.4
Scot Doyle [Pavel Machek, Michael Kerrisk]
Add CSI sequence for cursor blink interval
Add a Console Private CSI sequence to specify the current
console's cursor blink interval. The interval is specified
as a number of milliseconds until the next cursor display
state toggle, from 50 to 65535.
null.4
Michael Kerrisk
Note that reads from /dev/zero are interruptible since Linux 2.6.31
core.5
Michael Kerrisk
Mention 'coredump_filter' boot option
host.conf.5
Michael Kerrisk
Wording fix: s/resolv+/the resolver library/
The term "resolv+" seems to be historical cruft.
hosts.equiv.5
Carlos O'Donell
Fix format, clarify IdM needs, and provide examples.
In some recent work with a Red Hat customer I had the opportunity
to discuss the fine nuances of the ruserok() function and related
API which are used to implement rlogin and rsh.
It came to my attention after working with QE on some automated
internal testing that there were no good examples in the hosts.equiv
manual page showing how the format was supposed to work for this
file and for ~/.rhosts, worse the "format" line showed that there
should be spaces between arguments when that would clearly lead
to incorrect behaviour. In addition some things that the format
allows you to write are just wrong like "-host -user" which makes
no sense since the host is already rejected, and should be written
as "host -user" instead. I added notes in the example to make it
clear that "-host -user" is invalid.
I fixed three things:
(a) The format line.
- Either +, or [-]hostname, or +@netgrp or -@netgrp.
- Either +, or [-]username, or +@netgrp or -@netgrp.
- You must specify something in the hostname portion so remove
optional brackets.
(b) Clarify language around credentials
- If the host is not trusted you must provide credentials to
the login system and that could be anything really and it
depends on your configuration e.g. PAM or whatever IdM you have.
(c) Provide real-world examples
- Provide several real world examples and some corner case
examples for how you would write something. Hopefully others
can add examples as they see fit.
Michael Kerrisk [Carlos O'Donell, Arjun Shankar]
Improve explanation in EXAMPLE
locale.5
Marko Myllynen
Document map to_inpunct, map to_outpunct
See e.g. fa_IR for reference.
Marko Myllynen
Document class in LC_CTYPE
See e.g. the locale zh_CN and
http://en.cppreference.com/w/cpp/string/wide/towctrans
http://en.cppreference.com/w/cpp/string/wide/wctrans
Marko Myllynen
Add iconv(1) reference
Marko Myllynen
Document character transliteration
See e.g. da_DK for reference.
(Not sure should we actually provide an example here?)
Marko Myllynen
Document era keywords
This patch completes the LC_TIME section - since these era
keywords are so tightly coupled, I'm providing them as a
single patch.
Based on
http://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap07.html
http://www.open-std.org/jtc1/SC22/WG20/docs/n972-14652ft.pdf
Marko Myllynen
Document default_missing
Marko Myllynen
Document outdigit and alt_digits
See e.g. fa_IR for reference.
Marko Myllynen
Refer to locale(7) more prominently
It's probably a good idea to refer to locale(7) so that a reader
can check what a category is about before describing them in
detail.
Marko Myllynen
Document charclass and charconv
See e.g. the locales ja_JP and ko_KR and
http://en.cppreference.com/w/cpp/string/wide/towctrans
http://en.cppreference.com/w/cpp/string/wide/wctrans
Marko Myllynen
Copy is not exclusive in LC_CTYPE and LC_COLLATE
See e.g. da_DK for reference.
Marko Myllynen
Remove the FIXME for timezone
The timezone of LC_TIME is not in POSIX, only 6 (out of ~300)
glibc locales define it, the glibc code comment below from
glibc.git/programs/ld-time.c seems to suggest it's not a good
idea, and there's been a proposal in upstream [1] to remove the
existing timezone definitions from glibc locales so I think
it's actually better to leave this one undocumented:
/* XXX We don't perform any tests on the timezone value since this is
simply useless, stupid $&$!@... */
1) https://sourceware.org/ml/libc-alpha/2015-06/msg00098.html
Move the remaining LC_COLLATE FIXMEs together while at it.
Marko Myllynen
Fix country_isbn format
Both plain numbers and Unicode code points are used in
glibc locales but checking the code reveals that country_isbn
is handled like the rest of its category expect for country_num
which was clarified earlier.
Marko Myllynen
Sort according to the standard
Sort the options so that those defined in POSIX are listed first,
then followed by those defined in ISO/IEC TR 14652 in the order
of common convention in many widely used glibc locales.
Actual descriptions are unchanged.
http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap07.html
Marko Myllynen
Refer to strftime(3) where appropriate
The relationship between the locale time format syntax
and strftime() cannot be considered as obvious.
Marko Myllynen
Document map "totitle"
See e.g. locales/i18n for reference.
Michael Kerrisk [Marko Myllynen]
Remove BUGS section saying man page is not complete
To some degree, this is true of many pages. And anyway, this
page is much better after recent work by Marko.
proc.5
Michael Kerrisk
List /proc/vmstat fields
Michael Kerrisk
Tweak /proc/vmstat text
Michael Kerrisk
Add /proc/crypto entry with a pointer to further information
Michael Kerrisk [Kees Cook]
Document /proc/sys/kernel/sysctl_writes_strict
Based on text in Documentation/sysctl/kernel.txt.
Michael Kerrisk
Move misordered /proc/[pid]/timers entry
Michael Kerrisk
Refer to bpf(2) for explanation of /proc/sys/net/core/bpf_jit_enable
repertoiremap.5
Marko Myllynen
Symbolic names AKA mnemonics
A long time ago in glibc, repertoire maps were used (but they
were removed already in 2000), those mapping files were named
as mnemonics, so "mnemonic" is a term that would almost
certainly come up if somebody studies glibc side (perhaps even
the related standards like ISO 9945 [which I don't have access
to]) so I thought it's worth to mention to term in the man page
to make sure we're talking about the same thing, otherwise
someone might wonder is that something different or not.
IOW, symbolic names and mnemonics are often used interchangeably,
let's mention the other often used term in the page, too.
capabilities.7
Michael Kerrisk
CAP_SYS_ADMIN allows calling bpf(2)
locale.7
Marko Myllynen
LC_CTYPE determines transliteration rules on glibc systems
packet.7
文剑 [Cortland Setlow]
Fix description of binding a packet socket to an interface
pty.7
NeilBrown [Peter Hurley]
Clarify asynchronous nature of PTY I/O
A PTY is not like a pipe - there may be delayed between data
being written at one end and it being available at the other.
This became particularly apparent after
commit f95499c3030f
("n_tty: Don't wait for buffer work in read() loop")
in Linux 3.12
See also the mail thread at https://lkml.org/lkml/2015/5/1/35
Date Mon, 04 May 2015 12:32:04 -0400
From Peter Hurley <>
Subject Re: [PATCH bisected regression] input_available_p()
sometimes says 'no' when it should say 'yes'
rtld-audit.7
Ben Woodard
Use correct printf() specifier for pointer types
In the example code you used %x rather than %p in the example
code for an audit library. The problem is that it truncates the
pointers on 64b platforms. So you get something like:
la_symbind64(): symname = strrchr sym->st_value = 0x7f4b8a3f8960
ndx = 222 flags = 0x0 refcook = 8b53e5c8 defcook = 8b537e30
rather than:
la_symbind64(): symname = fclose sym->st_value = 0x7fa452dd49b0
ndx = 1135 flags = 0x0 refcook = 0x7fa453f395c8 defcook = 0x7fa453f32e30
This has bitten me a handful of times when playing around with
audit test libraries to investigate its behavior.
sched.7
Michael Kerrisk
Remove ancient, wildly optimistic prediction about future of RT patches
It seems the patches were not merged by 2.6.30...
socket.7
Michael Kerrisk
SEE ALSO: add bpf(2)
vdso.7
Nathan Lynch [Mike Frysinger]
Update for ARM
The 32-bit ARM architecture in Linux has gained a vDSO as of the
4.1 release. (I was the primary author.)
Document the symbols exported by the ARM VDSO.
Accepted kernel submission:
http://lists.infradead.org/pipermail/linux-arm-kernel/2015-March/332573.html
|