C Standard Library
Base.Libc.malloc
— Functionmalloc(size::Integer) -> Ptr{Cvoid}
Rufen Sie malloc
aus der C-Standardbibliothek auf.
Base.Libc.calloc
— Functioncalloc(num::Integer, size::Integer) -> Ptr{Cvoid}
Rufen Sie calloc
aus der C-Standardbibliothek auf.
Base.Libc.realloc
— Functionrealloc(addr::Ptr, size::Integer) -> Ptr{Cvoid}
Ruft realloc
aus der C-Standardbibliothek auf.
Siehe Warnung in der Dokumentation für free
bezüglich der Verwendung nur für Speicher, der ursprünglich von malloc
erhalten wurde.
Base.memcpy
— Functionmemcpy(dst::Ptr, src::Ptr, n::Integer) -> Ptr{Cvoid}
Rufen Sie memcpy
aus der C-Standardbibliothek auf.
Die Unterstützung für memcpy
erfordert mindestens Julia 1.10.
Base.memmove
— Functionmemmove(dst::Ptr, src::Ptr, n::Integer) -> Ptr{Cvoid}
Ruft memmove
aus der C-Standardbibliothek auf.
Die Unterstützung für memmove
erfordert mindestens Julia 1.10.
Base.memset
— Functionmemset(dst::Ptr, val, n::Integer) -> Ptr{Cvoid}
Ruft memset
aus der C-Standardbibliothek auf.
Die Unterstützung für memset
erfordert mindestens Julia 1.10.
Base.memcmp
— Functionmemcmp(a::Ptr, b::Ptr, n::Integer) -> Int
Ruft memcmp
aus der C-Standardbibliothek auf.
Die Unterstützung für memcmp
erfordert mindestens Julia 1.9.
Base.Libc.free
— Functionfree(addr::Ptr)
Rufen Sie free
aus der C-Standardbibliothek auf. Verwenden Sie dies nur für Speicher, der von malloc
erhalten wurde, nicht für Zeiger, die aus anderen C-Bibliotheken abgerufen wurden. Ptr
-Objekte, die aus C-Bibliotheken erhalten wurden, sollten mit den in dieser Bibliothek definierten Freifunktionen freigegeben werden, um Assertion-Fehler zu vermeiden, wenn mehrere libc
-Bibliotheken im System vorhanden sind.
Base.Libc.errno
— Functionerrno([code])
Holen Sie den Wert von errno
der C-Bibliothek. Wenn ein Argument angegeben ist, wird es verwendet, um den Wert von errno
zu setzen.
Der Wert von errno
ist nur unmittelbar nach einem ccall
zu einer C-Bibliotheksroutine gültig, die ihn setzt. Insbesondere können Sie errno
nicht an der nächsten Eingabeaufforderung in einem REPL aufrufen, da zwischen den Eingabeaufforderungen viel Code ausgeführt wird.
Base.Libc.strerror
— Functionstrerror(n=errno())
Konvertiert einen Fehlercode eines Systemaufrufs in einen beschreibenden String.
Base.Libc.GetLastError
— FunctionGetLastError()
Rufen Sie die Win32-Funktion GetLastError
[nur verfügbar unter Windows] auf.
Base.Libc.FormatMessage
— FunctionFormatMessage(n=GetLastError())
Konvertiert einen Win32-Systemaufruf-Fehlercode in eine beschreibende Zeichenfolge [nur verfügbar unter Windows].
Base.Libc.time
— Methodtime(t::TmStruct) -> Float64
Konvertiert eine TmStruct
-Struktur in eine Anzahl von Sekunden seit der Epoche.
Base.Libc.strftime
— Functionstrftime([format], time)
Konvertiere die Zeit, die als Anzahl von Sekunden seit der Epoche oder als TmStruct
angegeben ist, in einen formatierten String unter Verwendung des angegebenen Formats. Unterstützte Formate sind die gleichen wie die in der Standard-C-Bibliothek.
Base.Libc.strptime
— Functionstrptime([format], timestr)
Analysiere einen formatierten Zeitstring in eine TmStruct
, die die Sekunden, Minuten, Stunden, das Datum usw. angibt. Unterstützte Formate sind die gleichen wie die in der Standard-C-Bibliothek. Auf einigen Plattformen werden Zeitzonen möglicherweise nicht korrekt analysiert. Wenn das Ergebnis dieser Funktion an time
übergeben wird, um es in Sekunden seit der Epoche zu konvertieren, sollte das Feld isdst
manuell ausgefüllt werden. Es auf -1
zu setzen, teilt der C-Bibliothek mit, die aktuellen Systemeinstellungen zur Bestimmung der Zeitzone zu verwenden.
Base.Libc.TmStruct
— TypeTmStruct([Sekunden])
Konvertiert eine Anzahl von Sekunden seit der Epoche in ein aufgeschlüsseltes Format mit den Feldern sec
, min
, hour
, mday
, month
, year
, wday
, yday
und isdst
.
Base.Libc.FILE
— TypeFILE(::Ptr)
FILE(::IO)
Ein libc FILE*
, das eine geöffnete Datei darstellt.
Es kann als Ptr{FILE}
-Argument an ccall
übergeben werden und unterstützt auch seek
, position
und close
.
Ein FILE
kann aus einem gewöhnlichen IO
-Objekt konstruiert werden, vorausgesetzt, es handelt sich um eine geöffnete Datei. Es muss anschließend geschlossen werden.
Beispiele
julia> using Base.Libc
julia> mktemp() do _, io
# in die temporäre Datei schreiben mit `puts(char*, FILE*)` aus libc
file = FILE(io)
ccall(:fputs, Cint, (Cstring, Ptr{FILE}), "hello world", file)
close(file)
# die Datei erneut lesen
seek(io, 0)
read(io, String)
end
"hello world"
Base.Libc.flush_cstdio
— Functionflush_cstdio()
Spült die C stdout
- und stderr
-Streams (die möglicherweise von externem C-Code beschrieben wurden).
Base.Libc.systemsleep
— Functionsystemsleep(s::Real)
Unterbricht die Ausführung für s
Sekunden. Diese Funktion gibt nicht an den Julia-Scheduler ab und blockiert daher den Julia-Thread, auf dem sie ausgeführt wird, für die Dauer der Schlafzeit.
Siehe auch sleep
.
Base.Libc.mkfifo
— Functionmkfifo(path::AbstractString, [mode::Integer]) -> path
Erstellt eine FIFO-Sonderdatei (eine benannte Pipe) unter path
. Gibt path
im Erfolgsfall unverändert zurück.
mkfifo
wird nur auf Unix-Plattformen unterstützt.
mkfifo
erfordert mindestens Julia 1.11.