.\" -*- coding: UTF-8 -*- .\" Copyright 2006, Andi Kleen .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: Linux-man-pages-1-para .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH getcpu 2 "8. Februar 2026" "Linux man\-pages 6.18" .SH BEZEICHNUNG getcpu \- Bestimmt den CPU\- und NUMA\-Knoten, auf dem der aufrufende Thread läuft .SH BIBLIOTHEK Standard\-C\-Bibliothek (\fIlibc\fP,\ \fI\-lc\fP) .SH ÜBERSICHT .nf \fB#define _GNU_SOURCE\fP /* siehe feature_test_macros(7) */ \fB#include \fP .P \fBint getcpu(unsigned int *_Nullable \fP\fICPU\fP\fB, unsigned int *_Nullable \fP\fIKnoten\fP\fB);\fP .fi .SH BESCHREIBUNG Der Systemaufruf \fBgetcpu\fP() identifiziert den Prozessor und Knoten, auf dem der aufrufende Thread derzeit läuft und schreibt sie in Ganzzahlen, auf die die Argumente \fICPU\fP und \fIKnoten\fP zeigen. Der Prozessor ist eine kleine, eindeutige Ganzzahl, die die CPU identifiziert. Der Knoten ist ein kleiner eindeutiger Kennzeichner, der einen NUMA\-Knoten identifiziert. Wenn entweder \fICPU\fP oder \fIKnoten\fP NULL ist, wird auf den entsprechenden Zeiger nichts geschrieben. .P Die in \fICPU\fP abgelegte Information wird nur zum Zeitpunkt des Aufrufs als aktuell garantiert. Der Kernel kann jederzeit die CPU ändern, außer die CPU\-Affinität wurde mit \fBsched_setaffinity\fP(2) festgelegt. (Normalerweise passiert dies nicht, da der Scheduler die Bewegungen zwischen CPUs zu minimieren versucht, um die Zwischenspeicher aktuell zu halten, aber es ist möglich.) Der Aufrufende muss die Möglichkeit in Betracht ziehen, dass die in \fICPU\fP und \fIKnoten\fP zurückgelieferten Informationen zum Zeitpunkt des Abschlusses des Aufrufs nicht mehr aktuell sind. .SH RÜCKGABEWERT Bei Erfolg wird 0 zurückgegeben. Bei einem Fehler wird \-1 zurückgegeben und \fIerrno\fP gesetzt, um den Fehler anzuzeigen. .SH FEHLER .TP \fBEFAULT\fP Argumente zeigen außerhalb des Adressraums des aufrufenden Prozesses. .SH STANDARDS Linux. .SH GESCHICHTE .\" Linux 2.6.19 (X86\-64 und I386), Glibc 2.29. .SS "Unterschiede C\-Bibliothek/Kernel" Der Kernel\-Systemaufruf hat ein drittes Argument: .P .in +4n .nf \fBint getcpu(unsigned int *\fP\fICPU\fP\fB, unsigned int *\fP\fIKnoten\fP\fB,\fP \fB struct getcpu_cache *\fP\fItcache\fP\fB);\fP .fi .in .P Das Argument \fItcache\fP wird seit Linux 2.6.24 nicht mehr verwandt und sollte (beim direkten Aufruf des Systemaufrufs) als NULL angegeben werden, außer die Portabilität zu Linux 2.6.23 oder älter wird benötigt. .P .\" commit 4307d1e5ada595c87f9a4d16db16ba5edb70dcb1 .\" Author: Ingo Molnar .\" Date: Wed Nov 7 18:37:48 2007 +0100 .\" x86: ignore the sys_getcpu() tcache parameter .\" .\" ===== Before Linux 2.6.24: ===== .\" .I tcache .\" is a pointer to a .\" .IR "struct getcpu_cache" .\" that is used as a cache by .\" .BR getcpu (). .\" The caller should put the cache into a thread-local variable .\" if the process is multithreaded, .\" because the cache cannot be shared between different threads. .\" .I tcache .\" can be NULL. .\" If it is not NULL .\" .BR getcpu () .\" will use it to speed up operation. .\" The information inside the cache is private to the system call .\" and should not be accessed by the user program. .\" The information placed in the cache can change between Linux releases. .\" .\" When no cache is specified .\" .BR getcpu () .\" will be slower, .\" but always retrieve the current CPU and node information. .\" With a cache .\" .BR getcpu () .\" is faster. .\" However, the cached information is updated only once per jiffy (see .\" .BR time (7)). .\" This means that the information could theoretically be out of date, .\" although in practice the scheduler's attempt to maintain .\" soft CPU affinity means that the information is unlikely to change .\" over the course of the caching interval. In Linux 2.6.23 und älter legte das Argument \fItcache\fP, wenn es nicht NULL war, einen Zeiger auf einen Puffer, der vom aufrufenden in einem Thread\-lokalen Speicher reserviert wurde, fest, der zur Bereitstellung eines Zwischenspeichermechanismus für \fBgetcpu\fP() verwandt wurde. Die Verwendung des Zwischenspeichers beschleunigte die Aufrufe von \fBgetcpu\fP(), es gab allerdings eine sehr kleine Wahrscheinlichkeit, dass die zurückgelieferte Information veraltet war. Der Zwischenspeichermechanismus wurde als Problemursache bei der Migration von Threads zwischen CPUs betrachtet und daher wird das Argument jetzt ignoriert. .SH ANMERKUNGEN Linux bemüht sich so gut wie möglich, diesen Aufruf schnellstmöglich durchzuführen. (Auf einigen Architekturen erfolgt dies durch eine Implementierung in \fBvdso\fP(7).) Die Idee hinter \fBgetcpu\fP() besteht darin, es Programmen zu erlauben, Optimierungen für CPU\-bezogene Daten oder für NUMA durchzuführen. .SH "SIEHE AUCH" \fBmbind\fP(2), \fBsched_setaffinity\fP(2), \fBset_mempolicy\fP(2), \fBsched_getcpu\fP(3), \fBcpuset\fP(7), \fBvdso\fP(7) .PP .SH ÜBERSETZUNG Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann erstellt. .PP Diese Übersetzung ist Freie Dokumentation; lesen Sie die .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3 .UE oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen. .PP Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die .MT debian-l10n-german@lists.debian.org Mailingliste der Übersetzer .ME .