C Standard Library
Base.Libc.malloc
— Functionmalloc(size::Integer) -> Ptr{Cvoid}
استدعاء malloc
من مكتبة C القياسية.
Base.Libc.calloc
— Functioncalloc(num::Integer, size::Integer) -> Ptr{Cvoid}
استدعاء calloc
من مكتبة C القياسية.
Base.Libc.realloc
— Functionrealloc(addr::Ptr, size::Integer) -> Ptr{Cvoid}
استدعاء realloc
من مكتبة C القياسية.
انظر التحذير في الوثائق الخاصة بـ free
بشأن استخدام هذا فقط على الذاكرة التي تم الحصول عليها أصلاً من malloc
.
Base.memcpy
— Functionmemcpy(dst::Ptr, src::Ptr, n::Integer) -> Ptr{Cvoid}
استدعاء memcpy
من مكتبة C القياسية.
يتطلب دعم memcpy
على الأقل Julia 1.10.
Base.memmove
— Functionmemmove(dst::Ptr, src::Ptr, n::Integer) -> Ptr{Cvoid}
استدعاء memmove
من مكتبة C القياسية.
يتطلب دعم memmove
على الأقل جوليا 1.10.
Base.memset
— Functionmemset(dst::Ptr, val, n::Integer) -> Ptr{Cvoid}
استدعاء memset
من مكتبة C القياسية.
يتطلب دعم memset
على الأقل Julia 1.10.
Base.memcmp
— Functionmemcmp(a::Ptr, b::Ptr, n::Integer) -> Int
استدعاء memcmp
من مكتبة C القياسية.
يتطلب دعم memcmp
على الأقل جوليا 1.9.
Base.Libc.free
— Functionfree(addr::Ptr)
استدعاء free
من مكتبة C القياسية. استخدم هذا فقط على الذاكرة التي تم الحصول عليها من malloc
، وليس على المؤشرات المسترجعة من مكتبات C الأخرى. يجب تحرير كائنات Ptr
المستخرجة من مكتبات C بواسطة دوال التحرير المعرفة في تلك المكتبة، لتجنب فشل التأكيد إذا كانت هناك مكتبات libc
متعددة موجودة على النظام.
Base.Libc.errno
— Functionerrno([code])
احصل على قيمة errno
لمكتبة C. إذا تم تحديد وسيط، يتم استخدامه لتعيين قيمة errno
.
قيمة errno
صالحة فقط مباشرة بعد ccall
إلى روتين مكتبة C الذي يقوم بتعيينها. على وجه التحديد، لا يمكنك استدعاء errno
في الموجه التالي في REPL، لأن الكثير من التعليمات البرمجية يتم تنفيذها بين الموجهات.
Base.Libc.strerror
— Functionstrerror(n=errno())
تحويل رمز خطأ استدعاء النظام إلى سلسلة وصفية
Base.Libc.GetLastError
— FunctionGetLastError()
استدعاء دالة Win32 GetLastError
[متاحة فقط على Windows].
Base.Libc.FormatMessage
— FunctionFormatMessage(n=GetLastError())
تحويل رمز خطأ استدعاء نظام Win32 إلى سلسلة وصفية [متاحة فقط على Windows].
Base.Libc.time
— Methodtime(t::TmStruct) -> Float64
يحول بنية TmStruct
إلى عدد من الثواني منذ بداية العصر.
Base.Libc.strftime
— Functionstrftime([format], time)
قم بتحويل الوقت، المعطى كعدد من الثواني منذ بداية العصر أو كـ TmStruct
، إلى سلسلة منسقة باستخدام التنسيق المعطى. التنسيقات المدعومة هي نفسها الموجودة في مكتبة C القياسية.
Base.Libc.strptime
— Functionstrptime([format], timestr)
تحلل سلسلة زمنية بتنسيق إلى TmStruct
تعطي الثواني والدقائق والساعات والتاريخ، إلخ. التنسيقات المدعومة هي نفسها الموجودة في مكتبة C القياسية. في بعض الأنظمة، قد لا يتم تحليل المناطق الزمنية بشكل صحيح. إذا كانت نتيجة هذه الدالة ستُمرر إلى time
لتحويلها إلى ثوانٍ منذ العصر، يجب ملء حقل isdst
يدويًا. تعيينه إلى -1
سيخبر مكتبة C باستخدام إعدادات النظام الحالية لتحديد المنطقة الزمنية.
Base.Libc.TmStruct
— TypeTmStruct([seconds])
تحويل عدد الثواني منذ بداية العصر إلى تنسيق مفصل، مع الحقول sec
، min
، hour
، mday
، month
، year
، wday
، yday
، و isdst
.
Base.Libc.FILE
— TypeFILE(::Ptr)
FILE(::IO)
FILE*
من libc، يمثل ملفًا مفتوحًا.
يمكن تمريره كوسيط Ptr{FILE}
إلى ccall
ويدعم أيضًا seek
وposition
وclose
.
يمكن إنشاء FILE
من كائن IO
عادي، بشرط أن يكون ملفًا مفتوحًا. يجب إغلاقه بعد ذلك.
أمثلة
julia> using Base.Libc
julia> mktemp() do _, io
# اكتب إلى الملف المؤقت باستخدام `puts(char*, FILE*)` من libc
file = FILE(io)
ccall(:fputs, Cint, (Cstring, Ptr{FILE}), "hello world", file)
close(file)
# اقرأ الملف مرة أخرى
seek(io, 0)
read(io, String)
end
"hello world"
Base.Libc.flush_cstdio
— Functionflush_cstdio()
يعمل على تفريغ تدفقات C stdout
و stderr
(التي قد تكون قد كُتبت بواسطة كود C خارجي).
Base.Libc.systemsleep
— Functionsystemsleep(s::Real)
يعلق التنفيذ لمدة s
ثواني. هذه الدالة لا تعطي المجال لجدول أعمال جوليا وبالتالي تمنع خيط جوليا الذي تعمل عليه لمدة زمن النوم.
انظر أيضًا sleep
.
Base.Libc.mkfifo
— Functionmkfifo(path::AbstractString, [mode::Integer]) -> path
قم بإنشاء ملف خاص FIFO (أنبوب مسمى) في path
. أعد path
كما هو عند النجاح.
mkfifo
مدعوم فقط في منصات Unix.
mkfifo
يتطلب على الأقل Julia 1.11.