Skip to content
Syscall BSD#41

svc · unix #41

dup

Duplique un descripteur de fichier sur le plus petit numéro de fd libre du processus appelant.

Prototype

int dup(u_int fd);

Retour: int

Arguments

NameTypeDirDescription
fdu_int-

Historique des versions

XNU tagmacOS#
xnu-1456.1.26macOS 10.6 Snow Leopard41
xnu-1699.24.8macOS 10.7 Lion41
xnu-2050.18.24macOS 10.8 Mountain Lion41
xnu-2422.115.4macOS 10.9 Mavericks41
xnu-2782.40.9macOS 10.10 Yosemite41
xnu-3247.1.106macOS 10.11 El Capitan41
xnu-3789.1.32macOS 10.12 Sierra41
xnu-4570.1.46macOS 10.13 High Sierra41
xnu-4903.221.2macOS 10.14 Mojave41
xnu-6153.11.26macOS 10.15 Catalina41
xnu-1486.2.1141
xnu-1504.15.341
xnu-1504.3.1241
xnu-1504.7.441
xnu-1504.9.1741
xnu-1504.9.2641
xnu-1504.9.3741
xnu-1699.22.7341
xnu-1699.22.8141
xnu-1699.24.2341
xnu-1699.26.841
xnu-1699.32.741
xnu-2050.22.1341
xnu-2050.24.1541
xnu-2050.48.1141
xnu-2050.7.941
xnu-2050.9.241
xnu-2422.1.7241
xnu-2422.100.1341
xnu-2422.110.1741
xnu-2422.90.2041
xnu-2782.1.9741
xnu-2782.10.7241
xnu-2782.20.4841
xnu-2782.30.541
xnu-3247.10.1141
xnu-3248.20.5541
xnu-3248.30.441
xnu-3248.40.18441
xnu-3248.50.2141
xnu-3248.60.1041
xnu-3789.21.441
xnu-3789.31.241
xnu-3789.41.341
xnu-3789.51.241
xnu-3789.60.2441
xnu-3789.70.1641
xnu-4570.20.6241
xnu-4570.31.341
xnu-4570.41.241
xnu-4570.51.141
xnu-4570.61.141
xnu-4570.71.241
xnu-4903.231.441
xnu-4903.241.141
xnu-4903.270.4741
xnu-6153.101.641
xnu-6153.121.141
xnu-6153.141.141
xnu-6153.41.341
xnu-6153.61.141
xnu-6153.81.541

Exemples

C — duplicate stdin

int newfd = dup(STDIN_FILENO);

Notes

Le nouveau fd partage le même fileglob, le même offset et les mêmes drapeaux d'état que l'original, mais son bit FD_CLOEXEC est remis à zéro. dup est préservé à travers exec sauf si FD_CLOEXEC est ensuite positionné via fcntl(F_SETFD). L'appel renvoie EMFILE si RLIMIT_NOFILE serait dépassé.

Détection

Pas d'évènement ES dédié; observable via syscall::dup:entry en DTrace. La croissance de la table des fichiers s'infère via sysctl kern.num_files.

API associées

dup2closefcntlopenpipe