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.