Knowledge

File descriptor

Source 📝

203: 1110:
system call. Note, however, that what is actually passed is a reference to an "open file description" that has mutable state (the file offset, and the file status and access flags). This complicates the secure use of file descriptors as capabilities, since when programs share access to the same open
1111:
file description, they can interfere with each other's use of it by changing its offset or whether it is blocking or non-blocking, for example. In operating systems that are specifically designed as capability systems, there is very rarely any mutable state associated with a capability itself.
214:
system call) and that multiple file table entries can in turn refer to the same inode (if it has been opened multiple times; the table is still simplified because it represents inodes by file names, even though an inode can have
797:
function is used to perform various operations on a file descriptor, depending on the command argument passed to it. There are commands to get and set attributes associated with a file descriptor, including
348:
usually includes a low level file descriptor for the object in question on Unix-like systems. The overall data structure provides additional abstraction and is instead known as a
986:
A series of new operations on file descriptors has been added to many modern Unix-like systems, as well as numerous C libraries, to be standardized in a future version of
243:
with which the file (or other resource) has been opened: for reading, writing, appending, and possibly other modes. It also indexes into a third table called the
1398: 1243: 1331: 247:
that describes the actual underlying files. To perform input or output, the process passes the file descriptor to the kernel through a
251:, and the kernel will access the file on behalf of the process. The process does not have direct access to the file or inode tables. 1105: 1682: 1391: 2085: 1384: 1227: 231:
maintained by the kernel, that in turn indexes into a system-wide table of files opened by all processes, called the
87: 1848: 1542: 1361: 1314: 1891: 994:
suffix signifies that the function takes an additional first argument supplying a file descriptor from which
977:(a large collection of miscellaneous operations on a single file descriptor, often associated with a device) 210:
table. Note that multiple file descriptors can refer to the same file table entry (e.g., as a result of the
1675: 1590: 1422: 1007: 333:. File descriptors can also refer to other objects that do not normally exist in the file system, such as 2025: 1824: 1458: 1161: 1182: 1734: 1495: 1443: 1261: 1115: 834:(duplicates an existing file descriptor guaranteeing to be the lowest number available file descriptor) 95: 77: 1339: 219:). File descriptor 3 does not refer to anything in the file table, signifying that it has been closed. 2032: 1532: 1482: 1453: 1096: 1836: 1580: 1522: 314: 2037: 1744: 1729: 1668: 1448: 1428: 1407: 17: 820:(BSD and Solaris only; deletes all file descriptors greater than or equal to specified number) 1864: 1219: 1208: 2052: 1967: 1901: 1724: 1567: 1282: 769: 1002:
suffix thus becoming equivalent to passing a file descriptor corresponding to the current
8: 1941: 1931: 1881: 1463: 811: 524: 91: 1262:"The Open Group Base Specifications Issue 7, IEEE Std 1003.1-2008, 2018 Edition – creat" 80:
values, with negative values being reserved to indicate "no value" or error conditions.
1936: 1926: 1819: 1649: 1513: 1137: 1100: 596: 520: 385: 351: 326: 263: 51: 2059: 1812: 1433: 1310: 1223: 1003: 830: 223:
In the traditional implementation of Unix, file descriptors index into a per-process
211: 849:(Close fd1 if necessary, and make file descriptor fd1 point to the open file of fd2) 2015: 1908: 1896: 1874: 1739: 1478: 912: 867:(sets the process's current working directory based on a directory file descriptor) 745:(Linux, takes a single epoll filedescriptor to wait on many other file descriptors) 322: 99: 55: 2005: 1490: 1244:"Devices - What does the output of 'll /Proc/Self/Fd/' (From 'll /Dev/Fd') mean?" 62: 1303: 1183:"The Open Group Base Specifications Issue 7, IEEE Std 1003.1-2008, 2016 Edition" 1162:"The Open Group Base Specifications Issue 7, IEEE Std 1003.1-2008, 2016 Edition" 98:) should have three standard POSIX file descriptors, corresponding to the three 2080: 1972: 1918: 1831: 1781: 1776: 1644: 1551: 1257: 1157: 338: 334: 310: 258:, the set of file descriptors open in a process can be accessed under the path 70: 1006:. The purpose of these new operations is to defend against a certain class of 2074: 2042: 1984: 1977: 1807: 1691: 1639: 1376: 1215: 995: 712: 202: 2047: 2020: 2010: 1802: 1756: 1634: 1629: 1575: 1127: 318: 59: 1886: 1771: 1761: 1719: 1705: 1600: 723: 248: 66: 574:(also used for sending FDs to other processes over a Unix domain socket) 1869: 1608: 1557: 330: 1962: 1843: 1766: 1714: 1709: 1547: 364: 363:
The following lists typical operations on file descriptors on modern
306: 216: 35: 1797: 1751: 1527: 116: 1660: 1468: 126: 313:
named in a file system. As well as regular files, this includes
2000: 1517: 1509: 1505: 1500: 1140:(FCB) - an alternative scheme in CP/M and early versions of DOS 756: 179: 159: 290:. As a shortcut to these, any running process can also access 1585: 1537: 987: 972: 748: 345: 255: 244: 207: 139: 84: 1362:"Don't set shared file descriptors to non-blocking I/O mode" 1624: 1132: 962:(shuts down one or both halves of a full duplex connection) 871: 845: 838: 31: 936:(creates a new file descriptor for an incoming connection) 788: 706: 1280: 1114:
A Unix process' file descriptor table is an example of a
513: 1332:"Building a bridge: library API's and file descriptors?" 876:(maps ranges of a file into the process's address space) 858: 206:
File descriptors for a single process, file table and
367:
systems. Most of these functions are declared in the
1090: 1302: 1207: 696:(stdio function:converts file descriptor to FILE*) 358: 2072: 1359: 1099:. They can be passed between processes across 27:System resource identifier in operating systems 1406: 1676: 1392: 1095:Unix file descriptors behave in many ways as 76:File descriptors typically have non-negative 496: 378: 702:(stdio function: prints to file descriptor) 309:systems, file descriptors can refer to any 1683: 1669: 1399: 1385: 1256: 1180: 1156: 1329: 201: 1210:The Design of the UNIX Operating System 789:Operations on the file descriptor table 707:Operations on multiple file descriptors 14: 2073: 1201: 1199: 981: 514:Operations on a single file descriptor 1664: 1380: 294:file descriptors through the folders 1283:"close_range(2) — Linux manual page" 1205: 998:are resolved, the forms lacking the 859:Operations that modify process state 1360:de Boyne Pollard, Jonathan (2007). 1196: 83:File descriptors are a part of the 24: 1690: 50:) is a process-unique identifier ( 25: 2097: 1330:Brinkmann, Marcus (2009-02-04). 1309:. The Open Group. October 2006. 1091:File descriptors as capabilities 966: 1281:Stephen Kitt, Michael Kerrisk. 880: 344:The FILE data structure in the 325:(also called "special files"), 1849:Hidden file / Hidden directory 1353: 1323: 1295: 1274: 1250: 1236: 1174: 1150: 468:(with flag CLONE_PIDFD, Linux) 359:Operations on file descriptors 38:computer operating systems, a 13: 1: 1892:Filesystem Hierarchy Standard 1144: 690:(with P_PIDFD ID type, Linux) 1423:Principle of least privilege 371:header, but some are in the 7: 2086:Unix file system technology 2026:Comparison of file managers 1825:List of filename extensions 1459:Capability-based addressing 1121: 197: 10: 2102: 910: 906: 2033:File system fragmentation 1993: 1950: 1917: 1857: 1790: 1698: 1617: 1599: 1566: 1477: 1454:Capability-based security 1415: 1206:Bach, Maurice J. (1986). 892:fcntl() (F_GETLK, F_SETLK 800:F_GETFD, F_SETFD, F_GETFL 497:Deriving file descriptors 379:Creating file descriptors 239:. This table records the 1837:Extended file attributes 1745:Proprietary file formats 1305:Extended API Set, Part 2 761:(for BSD-based systems). 2038:File-system permissions 1449:Object-capability model 1429:Confused deputy problem 346:C standard I/O library 220: 1568:Programming languages 227:file descriptor table 205: 2053:File synchronization 1902:Semantic file system 1725:List of file formats 1618:Specialised hardware 1882:Directory structure 1101:Unix domain sockets 982:Upcoming operations 676:pidfd_send_signal() 478:open_by_handle_at() 327:Unix domain sockets 262:, where PID is the 1820:Filename extension 1650:Plessey System 250 1138:File Control Block 266:. File descriptor 264:process identifier 221: 121:symbolic constant 46:, less frequently 2068: 2067: 2060:File verification 1813:Filename mangling 1740:Open file formats 1658: 1657: 1479:Operating systems 1434:Ambient authority 1408:Object-capability 1185:. <stdio.h> 1004:working directory 782:copy_file_range() 323:character devices 195: 194: 16:(Redirected from 2093: 2016:Data compression 1897:Grid file system 1875:Temporary folder 1865:Directory/folder 1685: 1678: 1671: 1662: 1661: 1464:Zooko's triangle 1401: 1394: 1387: 1378: 1377: 1372: 1371: 1369: 1368: 1357: 1351: 1350: 1348: 1347: 1338:. Archived from 1327: 1321: 1320: 1308: 1299: 1293: 1292: 1290: 1289: 1278: 1272: 1271: 1269: 1268: 1254: 1248: 1247: 1240: 1234: 1233: 1213: 1203: 1194: 1193: 1191: 1190: 1181:The Open Group. 1178: 1172: 1171: 1169: 1168: 1154: 1109: 1086: 1081: 1076: 1071: 1066: 1061: 1056: 1051: 1046: 1041: 1036: 1031: 1026: 1021: 1016: 1001: 993: 975: 961: 956: 951: 946: 941: 935: 930: 925: 920: 913:Berkeley sockets 902: 897: 893: 888: 875: 866: 854: 848: 842: 833: 825: 819: 814: 805: 801: 796: 783: 777: 772: 766: 759: 751: 744: 740: 736: 731: 726: 720: 715: 701: 695: 689: 683: 677: 671: 665: 659: 653: 649: 643: 639: 634: 629: 624: 619: 614: 609: 604: 599: 592: 588: 583: 579: 573: 569: 564: 560: 555: 551: 546: 542: 537: 533: 528: 509: 504: 491: 485: 479: 473: 467: 461: 455: 449: 443: 437: 436:timerfd_create() 431: 425: 419: 414: 409: 404: 399: 394: 389: 375:header instead. 374: 370: 369:<unistd.h> 301: 297: 289: 285: 281: 277: 273: 269: 261: 237: 236: 229: 228: 191: 186: 171: 166: 151: 146: 130: 120: 105: 104: 100:standard streams 94:(except perhaps 21: 2101: 2100: 2096: 2095: 2094: 2092: 2091: 2090: 2071: 2070: 2069: 2064: 2006:File comparison 1989: 1958:File descriptor 1946: 1913: 1853: 1786: 1730:File signatures 1694: 1689: 1659: 1654: 1613: 1595: 1562: 1473: 1439:File descriptor 1411: 1405: 1375: 1366: 1364: 1358: 1354: 1345: 1343: 1328: 1324: 1317: 1301: 1300: 1296: 1287: 1285: 1279: 1275: 1266: 1264: 1255: 1251: 1242: 1241: 1237: 1230: 1204: 1197: 1188: 1186: 1179: 1175: 1166: 1164: 1155: 1151: 1147: 1124: 1104: 1093: 1084: 1079: 1074: 1069: 1064: 1059: 1054: 1049: 1044: 1039: 1034: 1029: 1024: 1019: 1014: 999: 991: 984: 973: 969: 959: 954: 949: 944: 939: 933: 928: 923: 918: 915: 909: 900: 895: 891: 886: 883: 870: 864: 861: 853:fcntl (F_DUPFD) 852: 844: 837: 829: 823: 817: 810: 803: 799: 794: 791: 781: 775: 770: 764: 757: 749: 742: 738: 734: 729: 724: 718: 713: 709: 699: 693: 687: 681: 675: 669: 663: 657: 651: 647: 641: 637: 632: 627: 622: 617: 612: 607: 602: 595: 590: 586: 581: 577: 571: 567: 562: 558: 553: 549: 544: 540: 535: 531: 519: 516: 507: 502: 499: 489: 483: 477: 471: 465: 459: 454:fanotify_init() 453: 447: 441: 435: 429: 423: 417: 412: 407: 402: 397: 392: 384: 381: 373:<fcntl.h> 372: 368: 361: 339:network sockets 335:anonymous pipes 299: 295: 287: 283: 279: 275: 271: 267: 259: 234: 233: 226: 225: 200: 189: 184: 169: 164: 160:Standard output 149: 144: 124: 114: 40:file descriptor 28: 23: 22: 15: 12: 11: 5: 2099: 2089: 2088: 2083: 2066: 2065: 2063: 2062: 2057: 2056: 2055: 2050: 2040: 2035: 2030: 2029: 2028: 2018: 2013: 2008: 2003: 1997: 1995: 1991: 1990: 1988: 1987: 1982: 1981: 1980: 1975: 1965: 1960: 1954: 1952: 1948: 1947: 1945: 1944: 1939: 1934: 1929: 1923: 1921: 1915: 1914: 1912: 1911: 1906: 1905: 1904: 1899: 1894: 1884: 1879: 1878: 1877: 1872: 1861: 1859: 1855: 1854: 1852: 1851: 1846: 1841: 1840: 1839: 1832:File attribute 1829: 1828: 1827: 1817: 1816: 1815: 1810: 1805: 1794: 1792: 1788: 1787: 1785: 1784: 1782:Zero-byte file 1779: 1777:Temporary file 1774: 1769: 1764: 1759: 1754: 1749: 1748: 1747: 1742: 1737: 1732: 1727: 1717: 1712: 1702: 1700: 1696: 1695: 1692:Computer files 1688: 1687: 1680: 1673: 1665: 1656: 1655: 1653: 1652: 1647: 1645:Intel iAPX 432 1642: 1637: 1632: 1627: 1621: 1619: 1615: 1614: 1612: 1611: 1605: 1603: 1597: 1596: 1594: 1593: 1588: 1583: 1578: 1572: 1570: 1564: 1563: 1561: 1560: 1555: 1552:HarmonyOS NEXT 1545: 1540: 1535: 1530: 1525: 1520: 1503: 1498: 1493: 1487: 1485: 1475: 1474: 1472: 1471: 1466: 1461: 1456: 1451: 1446: 1441: 1436: 1431: 1426: 1419: 1417: 1413: 1412: 1404: 1403: 1396: 1389: 1381: 1374: 1373: 1352: 1322: 1315: 1294: 1273: 1258:The Open Group 1249: 1235: 1228: 1214:(8 ed.). 1195: 1173: 1158:The Open Group 1148: 1146: 1143: 1142: 1141: 1135: 1130: 1123: 1120: 1092: 1089: 1088: 1087: 1082: 1077: 1072: 1067: 1062: 1057: 1052: 1047: 1042: 1037: 1032: 1027: 1022: 1017: 996:relative paths 983: 980: 979: 978: 968: 965: 964: 963: 957: 952: 947: 942: 937: 931: 926: 921: 908: 905: 904: 903: 898: 889: 882: 879: 878: 877: 868: 860: 857: 856: 855: 850: 835: 827: 821: 815: 790: 787: 786: 785: 779: 767: 762: 754: 746: 743:epoll_pwait2() 732: 721: 708: 705: 704: 703: 697: 691: 685: 679: 673: 667: 661: 655: 652:fremovexattr() 645: 635: 630: 625: 620: 615: 610: 605: 600: 593: 584: 575: 565: 556: 547: 538: 529: 515: 512: 511: 510: 505: 498: 495: 494: 493: 487: 481: 475: 469: 463: 460:inotify_init() 457: 451: 445: 442:memfd_create() 439: 433: 427: 421: 418:epoll_create() 415: 410: 405: 400: 395: 390: 380: 377: 360: 357: 311:Unix file type 284:/proc/PID/fd/2 276:/proc/PID/fd/1 268:/proc/PID/fd/0 217:multiple names 199: 196: 193: 192: 187: 182: 180:Standard error 177: 173: 172: 167: 162: 157: 153: 152: 147: 142: 140:Standard input 137: 133: 132: 122: 112: 109: 108:Integer value 71:network socket 26: 9: 6: 4: 3: 2: 2098: 2087: 2084: 2082: 2079: 2078: 2076: 2061: 2058: 2054: 2051: 2049: 2046: 2045: 2044: 2043:File transfer 2041: 2039: 2036: 2034: 2031: 2027: 2024: 2023: 2022: 2019: 2017: 2014: 2012: 2009: 2007: 2004: 2002: 1999: 1998: 1996: 1992: 1986: 1985:Symbolic link 1983: 1979: 1976: 1974: 1971: 1970: 1969: 1966: 1964: 1961: 1959: 1956: 1955: 1953: 1949: 1943: 1940: 1938: 1935: 1933: 1930: 1928: 1925: 1924: 1922: 1920: 1916: 1910: 1907: 1903: 1900: 1898: 1895: 1893: 1890: 1889: 1888: 1885: 1883: 1880: 1876: 1873: 1871: 1868: 1867: 1866: 1863: 1862: 1860: 1856: 1850: 1847: 1845: 1842: 1838: 1835: 1834: 1833: 1830: 1826: 1823: 1822: 1821: 1818: 1814: 1811: 1809: 1808:Long filename 1806: 1804: 1801: 1800: 1799: 1796: 1795: 1793: 1789: 1783: 1780: 1778: 1775: 1773: 1770: 1768: 1765: 1763: 1760: 1758: 1755: 1753: 1750: 1746: 1743: 1741: 1738: 1736: 1733: 1731: 1728: 1726: 1723: 1722: 1721: 1718: 1716: 1713: 1711: 1707: 1704: 1703: 1701: 1697: 1693: 1686: 1681: 1679: 1674: 1672: 1667: 1666: 1663: 1651: 1648: 1646: 1643: 1641: 1640:IBM System/38 1638: 1636: 1633: 1631: 1630:Cambridge CAP 1628: 1626: 1623: 1622: 1620: 1616: 1610: 1607: 1606: 1604: 1602: 1598: 1592: 1589: 1587: 1584: 1582: 1579: 1577: 1574: 1573: 1571: 1569: 1565: 1559: 1556: 1553: 1549: 1546: 1544: 1541: 1539: 1536: 1534: 1531: 1529: 1526: 1524: 1521: 1519: 1515: 1511: 1507: 1504: 1502: 1499: 1497: 1494: 1492: 1489: 1488: 1486: 1484: 1480: 1476: 1470: 1467: 1465: 1462: 1460: 1457: 1455: 1452: 1450: 1447: 1445: 1442: 1440: 1437: 1435: 1432: 1430: 1427: 1424: 1421: 1420: 1418: 1414: 1409: 1402: 1397: 1395: 1390: 1388: 1383: 1382: 1379: 1363: 1356: 1342:on 2012-07-30 1341: 1337: 1333: 1326: 1318: 1312: 1307: 1306: 1298: 1284: 1277: 1263: 1259: 1253: 1245: 1239: 1231: 1229:9780132017992 1225: 1221: 1217: 1216:Prentice-Hall 1212: 1211: 1202: 1200: 1184: 1177: 1163: 1159: 1153: 1149: 1139: 1136: 1134: 1131: 1129: 1126: 1125: 1119: 1117: 1112: 1107: 1102: 1098: 1083: 1078: 1073: 1068: 1063: 1058: 1053: 1048: 1043: 1038: 1033: 1028: 1023: 1018: 1013: 1012: 1011: 1009: 1005: 997: 989: 976: 971: 970: 967:Miscellaneous 958: 953: 948: 945:getpeername() 943: 940:getsockname() 938: 932: 927: 922: 917: 916: 914: 899: 890: 885: 884: 873: 869: 863: 862: 851: 847: 840: 836: 832: 828: 824:close_range() 822: 816: 813: 809: 808: 807: 780: 773: 768: 763: 760: 755: 752: 747: 739:epoll_pwait() 733: 727: 722: 716: 711: 710: 698: 692: 686: 680: 674: 668: 662: 656: 646: 636: 631: 626: 621: 616: 611: 606: 601: 598: 594: 585: 576: 566: 557: 548: 539: 530: 526: 522: 518: 517: 506: 501: 500: 488: 482: 476: 470: 464: 458: 452: 448:userfaultfd() 446: 440: 434: 428: 422: 416: 411: 406: 401: 396: 391: 387: 383: 382: 376: 366: 356: 355: 353: 347: 342: 340: 336: 332: 328: 324: 320: 316: 312: 308: 303: 296:/proc/self/fd 293: 265: 260:/proc/PID/fd/ 257: 252: 250: 246: 242: 238: 230: 218: 213: 209: 204: 188: 185:STDERR_FILENO 183: 181: 178: 175: 174: 168: 165:STDOUT_FILENO 163: 161: 158: 155: 154: 148: 143: 141: 138: 135: 134: 128: 123: 118: 113: 110: 107: 106: 103: 101: 97: 93: 90:. Each Unix 89: 86: 81: 79: 74: 72: 68: 64: 61: 57: 53: 49: 45: 41: 37: 33: 19: 2048:File sharing 2021:File manager 2011:File copying 1957: 1858:Organisation 1803:8.3 filename 1757:Sidecar file 1735:Magic number 1601:File systems 1438: 1365:. Retrieved 1355: 1344:. Retrieved 1340:the original 1335: 1325: 1304: 1297: 1286:. Retrieved 1276: 1265:. Retrieved 1252: 1238: 1209: 1187:. Retrieved 1176: 1165:. Retrieved 1152: 1128:fuser (Unix) 1113: 1097:capabilities 1094: 1060:readlinkat() 985: 955:setsockopt() 950:getsockopt() 881:File locking 792: 735:epoll_wait() 648:flistxattr() 472:pidfd_open() 408:socketpair() 362: 349: 343: 304: 291: 253: 240: 232: 224: 222: 145:STDIN_FILENO 131:file stream 82: 75: 65:, such as a 60:input/output 47: 43: 39: 29: 1887:File system 1772:System file 1762:Sparse file 1720:File format 1706:Binary file 1218:. pp.  1085:fdopendir() 1070:symlinkat() 1040:futimesat() 1020:faccessat() 826:(for Linux) 818:closefrom() 784:(for Linux) 778:(for Linux) 753:(for Linux) 750:epoll_ctl() 642:fsetxattr() 638:fgetxattr() 633:fdopendir() 628:fdatasync() 618:ftruncate() 331:named pipes 315:directories 249:system call 245:inode table 2075:Categories 1994:Management 1919:Operations 1870:NTFS links 1791:Properties 1609:Tahoe-LAFS 1558:Phantom OS 1367:2017-09-21 1346:2017-09-21 1316:1931624674 1288:2021-03-22 1267:2019-04-11 1189:2017-09-21 1167:2017-09-21 1145:References 1103:using the 1080:mkfifoat() 1075:unlinkat() 1065:renameat() 1030:fchownat() 1025:fchmodat() 960:shutdown() 911:See also: 765:sendfile() 684:(kFreeBSD) 670:vmsplice() 603:fstatvfs() 582:sendmmsg() 578:recvmmsg() 559:recvfrom() 492:(kFreeBSD) 424:signalfd() 235:file table 1963:Hard link 1844:File size 1767:Swap file 1715:Data file 1710:text file 1548:HarmonyOS 1055:mknodat() 1050:mkdirat() 1035:fstatat() 1010:attacks. 919:connect() 896:F_SETLKW) 719:pselect() 700:dprintf() 572:sendmsg() 568:recvmsg() 430:eventfd() 365:Unix-like 307:Unix-like 58:or other 36:Unix-like 1968:Shortcut 1798:Filename 1752:Metafile 1528:iMAX 432 1491:Capsicum 1469:Petnames 1416:Concepts 1410:security 1336:cap-talk 1122:See also 1045:linkat() 1015:openat() 934:accept() 929:listen() 865:fchdir() 771:splice() 758:kqueue() 714:select() 694:fdopen() 688:waitid() 682:pdkill() 613:fchown() 608:fchmod() 591:llseek() 563:sendto() 545:pwrite() 536:writev() 508:fileno() 490:pdfork() 484:kqueue() 403:accept() 398:socket() 198:Overview 117:unistd.h 63:resource 54:) for a 1951:Linking 1496:Fuchsia 1483:kernels 1106:sendmsg 974:ioctl() 907:Sockets 901:lockf() 887:flock() 812:close() 804:F_SETFL 795:fcntl() 730:ppoll() 678:(Linux) 672:(Linux) 666:(Linux) 660:(Linux) 654:(Linux) 644:(Linux) 623:fsync() 597:fstat() 587:lseek() 541:pread() 532:readv() 503:dirfd() 480:(Linux) 474:(Linux) 466:clone() 462:(Linux) 456:(Linux) 450:(Linux) 444:(Linux) 438:(Linux) 432:(Linux) 426:(Linux) 420:(Linux) 393:creat() 300:/dev/fd 292:its own 127:stdio.h 96:daemons 92:process 78:integer 18:Fcntl.h 2001:Backup 1978:Shadow 1576:Cajita 1533:Midori 1518:CapROS 1510:KeyKOS 1506:GNOSIS 1501:Genode 1444:C-list 1425:(PoLP) 1313:  1226:  1116:C-list 1008:TOCTOU 990:. The 924:bind() 846:dup3() 725:poll() 554:send() 550:recv() 413:pipe() 352:handle 329:, and 288:stderr 282:, and 280:stdout 190:stderr 170:stdout 52:handle 48:fildes 2081:POSIX 1973:Alias 1942:Write 1932:Close 1699:Types 1591:Joule 1586:Joe-E 1538:NLTSS 1523:Hydra 1220:92–96 988:POSIX 831:dup() 776:tee() 664:setns 658:statx 525:write 486:(BSD) 350:file 319:block 272:stdin 256:Linux 208:inode 150:stdin 111:Name 85:POSIX 1937:Read 1927:Open 1909:Path 1635:Flex 1625:BiiN 1543:seL4 1514:EROS 1311:ISBN 1224:ISBN 1133:lsof 894:and 872:mmap 839:dup2 802:and 793:The 523:(), 521:read 386:open 337:and 321:and 298:and 241:mode 129:> 125:< 119:> 115:< 67:pipe 56:file 34:and 32:Unix 305:In 286:is 278:is 270:is 254:On 212:dup 88:API 73:. 69:or 30:In 2077:: 1708:/ 1516:→ 1512:→ 1508:→ 1481:, 1334:. 1260:. 1222:. 1198:^ 1160:. 1118:. 1108:() 1000:at 992:at 874:() 843:, 841:() 806:. 774:, 741:, 737:, 728:, 717:, 650:, 640:, 589:, 580:, 570:, 561:, 552:, 543:, 534:, 527:() 388:() 341:. 317:, 302:. 274:, 176:2 156:1 136:0 102:: 44:FD 1684:e 1677:t 1670:v 1581:E 1554:) 1550:( 1400:e 1393:t 1386:v 1370:. 1349:. 1319:. 1291:. 1270:. 1246:. 1232:. 1192:. 1170:. 354:. 42:( 20:)

Index

Fcntl.h
Unix
Unix-like
handle
file
input/output
resource
pipe
network socket
integer
POSIX
API
process
daemons
standard streams
unistd.h
stdio.h
Standard input
Standard output
Standard error

inode
dup
multiple names
inode table
system call
Linux
process identifier
Unix-like
Unix file type

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.