C Standard Library

Base.Libc.mallocFunction
malloc(size::Integer) -> Ptr{Cvoid}

استدعاء malloc من مكتبة C القياسية.

source
Base.Libc.callocFunction
calloc(num::Integer, size::Integer) -> Ptr{Cvoid}

استدعاء calloc من مكتبة C القياسية.

source
Base.Libc.reallocFunction
realloc(addr::Ptr, size::Integer) -> Ptr{Cvoid}

استدعاء realloc من مكتبة C القياسية.

انظر التحذير في الوثائق الخاصة بـ free بشأن استخدام هذا فقط على الذاكرة التي تم الحصول عليها أصلاً من malloc.

source
Base.memcpyFunction
memcpy(dst::Ptr, src::Ptr, n::Integer) -> Ptr{Cvoid}

استدعاء memcpy من مكتبة C القياسية.

Julia 1.10

يتطلب دعم memcpy على الأقل Julia 1.10.

source
Base.memmoveFunction
memmove(dst::Ptr, src::Ptr, n::Integer) -> Ptr{Cvoid}

استدعاء memmove من مكتبة C القياسية.

جوليا 1.10

يتطلب دعم memmove على الأقل جوليا 1.10.

source
Base.memsetFunction
memset(dst::Ptr, val, n::Integer) -> Ptr{Cvoid}

استدعاء memset من مكتبة C القياسية.

Julia 1.10

يتطلب دعم memset على الأقل Julia 1.10.

source
Base.memcmpFunction
memcmp(a::Ptr, b::Ptr, n::Integer) -> Int

استدعاء memcmp من مكتبة C القياسية.

جوليا 1.10

يتطلب دعم memcmp على الأقل جوليا 1.9.

source
Base.Libc.freeFunction
free(addr::Ptr)

استدعاء free من مكتبة C القياسية. استخدم هذا فقط على الذاكرة التي تم الحصول عليها من malloc، وليس على المؤشرات المسترجعة من مكتبات C الأخرى. يجب تحرير كائنات Ptr المستخرجة من مكتبات C بواسطة دوال التحرير المعرفة في تلك المكتبة، لتجنب فشل التأكيد إذا كانت هناك مكتبات libc متعددة موجودة على النظام.

source
Base.Libc.errnoFunction
errno([code])

احصل على قيمة errno لمكتبة C. إذا تم تحديد وسيط، يتم استخدامه لتعيين قيمة errno.

قيمة errno صالحة فقط مباشرة بعد ccall إلى روتين مكتبة C الذي يقوم بتعيينها. على وجه التحديد، لا يمكنك استدعاء errno في الموجه التالي في REPL، لأن الكثير من التعليمات البرمجية يتم تنفيذها بين الموجهات.

source
Base.Libc.strerrorFunction
strerror(n=errno())

تحويل رمز خطأ استدعاء النظام إلى سلسلة وصفية

source
Base.Libc.FormatMessageFunction
FormatMessage(n=GetLastError())

تحويل رمز خطأ استدعاء نظام Win32 إلى سلسلة وصفية [متاحة فقط على Windows].

source
Base.Libc.timeMethod
time(t::TmStruct) -> Float64

يحول بنية TmStruct إلى عدد من الثواني منذ بداية العصر.

source
Base.Libc.strftimeFunction
strftime([format], time)

قم بتحويل الوقت، المعطى كعدد من الثواني منذ بداية العصر أو كـ TmStruct، إلى سلسلة منسقة باستخدام التنسيق المعطى. التنسيقات المدعومة هي نفسها الموجودة في مكتبة C القياسية.

source
Base.Libc.strptimeFunction
strptime([format], timestr)

تحلل سلسلة زمنية بتنسيق إلى TmStruct تعطي الثواني والدقائق والساعات والتاريخ، إلخ. التنسيقات المدعومة هي نفسها الموجودة في مكتبة C القياسية. في بعض الأنظمة، قد لا يتم تحليل المناطق الزمنية بشكل صحيح. إذا كانت نتيجة هذه الدالة ستُمرر إلى time لتحويلها إلى ثوانٍ منذ العصر، يجب ملء حقل isdst يدويًا. تعيينه إلى -1 سيخبر مكتبة C باستخدام إعدادات النظام الحالية لتحديد المنطقة الزمنية.

source
Base.Libc.TmStructType
TmStruct([seconds])

تحويل عدد الثواني منذ بداية العصر إلى تنسيق مفصل، مع الحقول sec، min، hour، mday، month، year، wday، yday، و isdst.

source
Base.Libc.FILEType
FILE(::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"
source
Base.Libc.flush_cstdioFunction
flush_cstdio()

يعمل على تفريغ تدفقات C stdout و stderr (التي قد تكون قد كُتبت بواسطة كود C خارجي).

source
Base.Libc.systemsleepFunction
systemsleep(s::Real)

يعلق التنفيذ لمدة s ثواني. هذه الدالة لا تعطي المجال لجدول أعمال جوليا وبالتالي تمنع خيط جوليا الذي تعمل عليه لمدة زمن النوم.

انظر أيضًا sleep.

source
Base.Libc.mkfifoFunction
mkfifo(path::AbstractString, [mode::Integer]) -> path

قم بإنشاء ملف خاص FIFO (أنبوب مسمى) في path. أعد path كما هو عند النجاح.

mkfifo مدعوم فقط في منصات Unix.

Julia 1.11

mkfifo يتطلب على الأقل Julia 1.11.

source