بررسی کتابخانه استاندارد C

کتابخانه استاندارد C مجموعه ای از توابع، ماکروها و تعاریف نوع ارائه شده به عنوان بخشی از استاندارد زبان برنامه نویسی ISO C است. به توسعه دهندگان یک پایه قابل حمل و آزمایش برای کارهای مشترک مانند ورودی / خروجی، پردازش رشته، تخصیص حافظه، محاسبات ریاضی و دستکاری زمان را می دهد.با تکیه بر کتابخانه استاندارد به جای نوشتن راه حل های سفارشی، شما اشکالات، بهبود کد گذاری، و برنامه های رفتار خود را به طور مداوم در سراسر سیستم عامل های مختلف.

کتابخانه به چندین فایل هدر سازماندهی شده است، هر یک از قابلیت های مرتبط با گروه بندی، درک آنچه که هر هدر ارائه می دهد اولین گام برای نوشتن کد کارآمد و قابل نگهداری C است. در زیر ما بررسی مهمترین هدر و توابع اصلی خود، همراه با مثال های عملی است که نشان می دهد چگونه آنها برنامه نویسی روزمره را ساده می کنند.

مدیران ضروری و عملکرد آنها

وت؛ احمق و احمق؛ ورودی و خروجی

هدر برای خواندن و نوشتن به جریان های استاندارد (استالین، stdout، stderr) و فایل ها فراهم می کند.بدون آن، شما باید تماس های سیستم سطح پایین را پیاده سازی کنید یا لایه کلید بافر خود را بنویسید:

  • [[۱] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰]] [[۱۰]] [۱۰]] [۱۰]] [۱۰]] [۳]] [۳] [۳]] [۳]] [۱۰] [۳]] [۳] [۳] [۳]] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [بر [بر [بر [بر [بر [و [بر [بر [بر [بر [بر [بر [و [و [بر [بر [بر [بر [و]]]]] [بر [و [بر [بر [بر [بر [بر [بر [و [بر [بر [بر [بر [بر [بر [بر [بر [بر [بر [بر [بر [بر [بر [بر [بر [بر [بر [بر [بر [بر [بر [بر [بر [بر [و]]]]]]]]]]]]]]]]]]]] [و [بر [بر [بر [بر [بر
  • [[۱] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰]] [۱۰]] [۳]] [۳] [۳] [۱]] [۱]] [۱۰] [۳]] [۳] [۳] فایل های باز و نزدیک [بر روی صفحه] قرار دارند.
  • [[۱] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰]] [۱۰]] [۱۰]] [۱۰] [۳]] - خواندن / نوشتن رشته ها از فایل های امن.
  • [[ویرایش] [FLT: ] [FLT: ] [ [FLT: ] [ [ [ [ ] [ ] [ [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] ] [ ] [ ] [ [ ] [ ] ] [ [ ] [ ] [ [ ] [ ] [ [ ] [ [ ] [ [ ] ] [ [ ] [ [ ] ] ] [ [ [ ] [ ] ] [ [ ] ] ] ] [ [ [ ] ] [ [ ] ] ] ] [ [ [ [ ] ] ] ] ] [ [ [ [ [ ] ] ] ] ] ] ] ] ] ] ] ] [ [ [ [ [ [ ] ] [ [ [ [ ] ] ] [ [ [ [ ] ] ] ] [ [ [ ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] [ [ [ [ [ [ [ [ [ [ ] ] ] ] [ [ [ ] ] ] ] ] ] ] ] ] ] [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ ] ] ] ] ] ] ] ] ] ] ] ] ] ] ]
  • [[۱] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰]] [۱۰] [۱۰]] [۱۰] [۱۰]] [۱۰]] [۱۰] [۱۰] [۱۰]] [۱۰]] [۱۰] [۱۰]] [۳]] [۳] [۳] فایل فرمت شده I/O.

[[ویرایش] [۱] [۱۰] [۱۰] [۱] [۱]] خواندن یک خط از کاربر بدون سر و صدا با [FLT: ۱۱]

#include <stdio.h>

int main() {
 char buffer[100];
 printf("Enter a line: ");
 if (fgets(buffer, sizeof(buffer), stdin)) {
 printf("You entered: %s", buffer);
 }
 return 0;
}

وت؛ تعادل.h >؛ General Utilities

[FLT13] شامل توابع برای تخصیص حافظه پویا، نسل تصادفی، کنترل فرآیند و تبدیل است.این برای برنامه هایی که نیاز به اختصاص حافظه در زمان اجرا یا انجام عملیات سطح سیستم دارند ضروری است.

  • [[[ویرایش] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰]] [[۱۰]] [۱۰] [۱۰] [۱۰] [۱۰]] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۳] [۳] [FLT: ۴] مدیریت حافظه پویا [۳]
  • [[۱] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۱۰] [۳] [۳] [۳] [۳] [۱۰] [۱۰] [۱۰] [۳] [۳] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۳] [۱۰] [۳] [۱۰] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳]
  • [[۱] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰]] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [و [و [و [و [به نسل [و [به [به [به] [به [به [به [و [و [و [به] نسل [به] [به] [به] [و [به] [به [به [به] [به [و [و [به] [به] [به] [به] [و [و [به] [به] [به [به [به] [به] [به] [به] [به] [به] [به] [به] [به] [به] [و [و [به] [به] [به] [به] [به] [به] [به [به]
  • [[۱] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰]] [۱۰]] [۳] [۳] - کنترل فرایند [۱۰]
  • [در این میان] [مشرکان] [فضا:] [[[۱۰]] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱]] [۱۰] [۱] [۱۰] [۱]] [۱۰] [۱] [۱۰] [۱] [۱] [۱] [۱] [۱] [۳] [۱] [۲] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۱] [۱] [۲] [۳] [۱] [۳] [۳] [۲] [۳] [۱] [۱] [۱] [۳] [۳] [۳] [۳] [۳] [۱] [۳] [۳] [۳] [۳] [۱] [۱] [۱] [۳] [۳] [۳] [۳] [۳] [۱] [۳] [۳] [۱] [۱] [۱] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [
  • [[۱] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱]] [۱۰] [۲] [۱۰] [۲]] [۱۰] [۱۰] [۲] [۱] [۲] [۲] [۲] [۳] [۳] [۲] [۳] [۳] [۳] [۳] [۳] [۳] [۲] [۲] [۳] [۳] [۳] [۲] [۲] [۲] [۲] [۳] [۳] [۲] [۳] [۳] [۲] [۳] [۳] [۲] [۳] [۳] [۳] [۳] [۳] [۲] [۳] [۳] [۳] [۲] [۳] [۳] [۲] [۲] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۲] [۲] [۳] [۳] [۲] [۲] [۲] [۲] [

[[۱] [۱۰] [[۱۰]] [[۱۰]]] [[۱۰]]]] [[۱۰]]]] [[۱۰]]]] [۱۰]] [۱۰] [۱۰] [۱۰]] [۱۰]] [۱۰] [۱۰] [۱۰]] [۱۰] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۸] [۸] [۸] [۸] [۸] [۸] [۸] [۸] [۸] [۳] [۳] [۸] [۸]] [۳] [۳] [۳] [۳]]] [۳]]]] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳]]] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [

#include <stdio.h>
#include <stdlib.h>

int compare(const void *a, const void *b) {
 return (*(int*)a - *(int*)b);
}

int main() {
 int arr[] = {42, 3, 71, 1, 9};
 size_t n = sizeof(arr) / sizeof(arr[0]);
 qsort(arr, n, sizeof(int), compare);
 for (size_t i = 0; i < n; i++)
 printf("%d ", arr[i]);
 printf("\n");
 return 0;
}

وولت؛ رشته.h >؛ رشته و عملیات حافظه

کار با رشته های C ( آرایه های ظریف از شخصیت ها) بدون کتابخانه استاندارد، اثبات خطا است. [FLT 29] توابع امن و کارآمد برای کپی کردن، مخلوط کردن، مقایسه و جستجو رشته ها، و همچنین عملیات بلوک حافظه فراهم می کند.

  • [[۱] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰]] [۱۰] [۳]] [۳]] [۳] - کپی کردن رشته ها [[ویرایش]
  • [در این باره] [FLT: 32] [FLT3] [FLT3] [مشرکان] [و] [مشرکان]] [و]] [مشرکانه] [و] [مشرکانه ] [و]] [در این [برک] [برک [برک] [و [و]]] [و [و [و]]]] [و [و [و [و [و [و]]]]]]]] [و [و [و [در [و [و [و [و [و]]]]]]]]]]] [و [و [و [و [و [و [و [و [و [و [و [و [و [و [و [و [و]]]]]]]]]]]]]]]]]]]]] [بر [بر [بر [و [و [و [و [و [و [در [و [و [و [بر [بر [و [و [و [در [در [و [و [بر
  • [[[ویرایش] [FLT: 34] [FLT] [FLT3] [FLT3]] [FLT3] [مشرکانه] [مشرکان]] [مشرکانه:] [در مقایسه رشته های جغرافیایی.
  • [در این باره] [FLT 1] [به صورت زیر] [FLT:] طول رشته را دریافت کنید.
  • [[[ویرایش] [FLT:] [FLT: ] [ [FLT: ] [ [ [FLT: ] [ [ [ ] [ ] [ [ ] [ ] [ ] [ ] [ ] [ [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] ] [ [ ] [ ] ] [ [ ] ] [ [ [ ] ] ] [ [ [ [ ] ] [ [ [ ] ] ] ] [ [ [ [ [ ] ] ] ] ] [ [ [ [ [ ] ] ] ] ] ] ] ] [ [ [ [ [ [ ] ] ] ] ] ] ] ] ] [ [ [ [ [ [ [ [ ] ] ] ] ] ] ] ] ] ] ] ] [ [ [ [ [ [ ] ] ] [ [ [ [ [ [ [ [ [ ] ] ] ] ] ] ] ] ] ] ] ] [ [ [ ] ] ] ] ] ] ] [ [ [ [ [ [ [ [ [ [ [ ] ] ] ] ] ] ] ] ] ] ] ] [ [ [ [ [ [ [ [ [ [ ] ] ] ] ] [ [ [ [ [ [ [ [ [ ] ] ] ] ] ] ] ] ] ] ] ] ] ] ]
  • [[[ویرایش] [FLT:] [FLT:] [FLT: ] [ [ [FLT ] [ [ [ [ ] [ ] [ [ ] [ ] [ ] [ ] [ ] [ [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] ] [ ] [ ] [ ] [ ] ] ] [ [ ] ] [ ] [ ] [ ] ] [ [ [ ] ] [ [ ] ] ] [ [ [ ] ] ] ] [ [ [ [ ] ] ] ] ] ] ] [ [ [ ] ] ] ] [ [ [ [ ] ] ] ] ] ] ] ] ] [ [ [ [ [ [ ] ] ] ] ] ] ] ] ] ] ] ] ] [ [ [ [ [ [ ] ] ] ] ] [ [ [ [ [ [ [ [ ] ] ] [ [ [ ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] [ [ [ [ [ [ [ [ [ [ [ ] ] ] ] ] ] ] ] ] ] ] ] ] ] ]
  • [[۱] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱]] [۱۰] [۱] [۱]] [۱]] [۱]] [۱] [۱۰] [۱] [۱۰] [۱]] [۱] [۱۰] [۱]] [۳] [۱] [۱] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [بر [بر [بر [بر [بر [۳] [بر [بر [براى [براى [براى [براى [براى [براى [براى [براى [براى [براى [براى [براى [براى [براى [براى [براى [براى [براى [براى [براى [

[[ویرایش] [۱] [۱۰] [۱۰] [۱۰] [۱۰] [۱]] [۱۰] [۱۰] [۱۰]] [۱۰] [۱۰]] [۱] [۱۰] [۱] [۱۰] [۱۰] [۱۰] [۱۰] [۱] [۱۰] [۳] [۳] [۳] [۳] [۳] [۱] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۱] [۳] [۱] [۱] [۱] [۱] [۵] [۵] [۱۰] [۳] [۱۰] [۱] [۱] [۱۰] [۱۰] [۱] [۱۰] [۳] [۱۰] [۱] [۱] [۱] [۱] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱] [۱۰] [۱۰] [۱۰] [۱۰] [۳] [۳] [۱۰] [۳] [۳] [۱۰] [۱۰] [۱۰] [۱۰]

#include <stdio.h>
#include <string.h>

int main() {
 char dest[20] = "Hello, ";
 const char *src = "World!";
 strncat(dest, src, sizeof(dest) - strlen(dest) - 1);
 printf("%s\n", dest);
 return 0;
}

وولت؛ ماth.h>؛ - توابع ریاضی

برای کاربردهای علمی و مهندسی، توابع شناور مانند را فراهم می کند، ، ، [FLT14]، ، و [FLT 51]، این سخت افزار بهینه سازی شده و بسیار دقیق تر از پیاده سازی ساده لوحانه است.

  • [[۱] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰]] [۱۰] [۱۰] [۱۰] [۱۰]] [۱۰] [۱] [۲]] [۱۰] [۱]] [۱۰] [۱] [۱]] [۱]] [۱] [۱]] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۲] [۲] [۲] [۲] [۱] [۱] [۱] [۲] [۲]]] [۲] [۲] [۲] [۲] [۲] [۱]]] [۱]]]] [۲] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱]] [۲] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۲] [۲] [۱] [۱] [۱] [۱] [۱] [۱] [۱]
  • [[[ویرایش] [FLT] [FLT] [FLT] [[[ویرایش]] توابع مثلثی
  • [[[ویرایش] [FLT: ] [[ [FLT ] ] [ [ [FLT ] ] [ [ [ [ ] ] [ [ ] [ ] [ ] ] [ ] [ ] [ ] [ ] [ ] [ ] ] [ ] [ ] [ ] ] [ ] [ ] [ ] ] [ ] [ ] [ ] [ ] ] ] [ [ ] ] [ [ ] ] ] [ [ [ ] ] ] [ [ [ ] ] ] ] [ [ [ [ ] ] ] ] ] [ [ [ ] ] ] ] ] ] ] ] ] [ [ [ [ [ ] ] ] ] ] ] ] ] ] ] ] [ [ [ [ [ [ [ ] ] ] ] ] ] ] ] ] ] ] ] ] ] [ [ [ ] ] ] ] ] [ [ [ ] [ [ [ [ [ ] ] ] ] [ [ [ [ ] ] ] ] ] ] ] ] ] ] ] ] ] ] [ [ [ [ [ [ [ [ ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ]
  • - ارزش مطلق برای اعداد شناور.
  • [[۱] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱] [۱۰] [۱] [۱۰] [۱] [۱۰] [۱] [۱] [۱۰] [۳] [۳] [۳] [۳] [۳] [۱۰] [۱] [۱] [۱] [۱] [۱] [۱] [۱۰] [۱۰] [۱۰] [۱] [۱۰] [۱] [۱] [۱۰] [۱۰] [۱۰] [۱۰] [۳] [۱۰] [۱] [۳] [۱] [۱] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱] [۱] [۱] [۳] [۱۰] [۳] [۳] [۳] [۳] [۳] [۱] [۱] [۱۰] [۱۰]

[[۱] [۱۰] [۱۰] [۱۰] [۱۰] [۱]] [۱۰]] [۱۰] [۱۰]] [۱۰]] [۱۰]] [۱]] [۱۰] [۱]] [۱۰] [۱۰] [۱۰] [۱] [۱۰]] [۱۰] [۱] [۱] [۱] [۵] [۵] [۱] [۵] [۵] [۵] [۵] [۵] [۵] [۵] [۵] [بر [بر [بر [بر [بر [بر [بر روی [بر روی [بر [بر [۲] [بر روی [بر روی [بر روی [۲] [۳۲] [بر [۲] [بر روی [بر روی [بر روی [بر روی [بر روی [بر روی [بر روی [بر روی [بر روی [بر روی [بر روی [بر روی [بر روی [بر روی [بر روی [بر روی [بر روی [۳۲] فاصلهٔ] اختلاف] اختلاف] اختلاف] اختلاف میان دو نقطه] اختلاف میان دو نقطه] اختلاف میان دو نقطه] اختلاف میان دو نقطه] اختلاف نظر] اختلاف نظر] اختلاف نظر] اختلاف نظر] اختلاف نظر] اختلاف نظر

#include <stdio.h>
#include <math.h>

int main() {
 double x1 = 1.0, y1 = 2.0, x2 = 4.0, y2 = 6.0;
 double dx = x2 - x1, dy = y2 - y1;
 double distance = sqrt(dx*dx + dy*dy);
 printf("Distance: %.2f\n", distance);
 return 0;
}

وولت؛ نوع.h>؛

در ، |(FLT:63|(FLT:64)]]، |آنها قوانین خاص محلی را اداره می کنند و از نوشتن مقایسه های دستی امن تر هستند.

[[ویرایش] [۱] [۱۰] [۱] [۱۰] [۱] [۱]] [۱] [۱] [۱] [۱] [۱]] [۱] [۱] [۱] [۱۰] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۳] [۱] [۱] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۱] [۳] [۱] [۱] [۱] [۳] [۱] [۳] [۲] [۲] [۳] [۱] [۱] [۱] [۱] [۳] [۱] [۳] [۳] [۱] [۳] [۳] [۳] [۳] [۱] [۱] [۱] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۱] [۱] [۱] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [

#include <stdio.h>
#include <ctype.h>

int main() {
 char str[] = "Hello, World!";
 for (int i = 0; str[i]; i++)
 str[i] = toupper(str[i]);
 printf("%s\n", str);
 return 0;
}

و زمان: تاریخ و زمان

فراهم می کند توابع برای به دست آوردن زمان فعلی، اندازه گیری زمان از بین رفته، و تاریخ / رشته های زمان فرمت استفاده می شود.

  • [[۱] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰]] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰]] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱] [۱۰] [۱۰] [۱] [۱۰] [۱] [۱] [۱] [۱۰] [۱۰] [۳] [۱] [۲] [۲] [۲] [۱] [۳] [۱] [۱] [۲] [۱] [۲] [۱۰] [۱۰] [۲] [۲] [۱] [۱] [۱] [۱] [۲] [۱] [۲] [۲] [۱] [۲] [۲] [۲] [۳] [۱۰] [۱۰] [۱] [۲] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰] [۱] [۱] [۱۰] [۱] [۱] [۱۰] [۲] [۲] [۲] [۲] [۲] [۲] [۲] [۱۰] [
  • - زمان پردازنده استفاده شده توسط برنامه.
  • - تفاوت بین دو ارزش زمان.
  • [[۱] [۱۰] [۱۰] [۱۰] [۱۰] [۱] [۱۰]] [۱۰] [۱] [۱]] [۱۰] [۱]] [۱] [۱] [۱] [۱۰] [۱]] [۱] [۱] [۱]] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۲] [۲] [۲] [۱] [۱] [۱] [۱] [۲] [۲] [۲] [۲] [۲] [۲] [۲] [۱]] [۱] [۱]]] [۱] [۱] [۱] [۱] [۱] [۲] [۱] [۱] [۱] [۱] [۱] [۱]]] [۲] [۲] [۲] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۲] [۲] [۲] [۲] [۲] [۲] [۱] [۲] [۱] [۱
  • [[[ویرایش] / [FLT3] - تبدیل زمان t به شکستن tm ساختار.

[[ویرایش] [۱] [۱۰] [۱۰] [۱] [۱] [۱۰]] [۱] [۱] [۱] [۱] [۱]] [۱] [۲] [۱] [۱۰] [۱] [۱] [۱] [۲] [۱] [۲] [۱] [۱] [۲] [۲] [۱] [۲] [۲] [۲] [۳] [۳] [۲] [۲] [۲] [۲] [۲] [۱] [۱] [۲] [۲] [۲] [۲] [۲] [۲] [۲] [۱] [۲] [۱] [۱] [۲] [۲] [۲] [۲] [۱] [۲] [۲] [۲] [۲] [۱] [۱] [۲] [۲] [۲] [۲] [۲] [۲] [۲] [۱] [۱] [۱] [۱] [۱] [۲] [۲] [۲] [۲] [۲] [۲] [۲] [۲] [۲] [۲] [۲] [

#include <stdio.h>
#include <time.h>

int main() {
 time_t t = time(NULL);
 struct tm *tm_info = localtime(&t);
 char buffer[26];
 strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", tm_info);
 printf("Current time: %s\n", buffer);
 return 0;
}

نمونه های عملی که قدرت کتابخانه استاندارد را نشان می دهند

خواندن یک فایل امن

خواندن یک خط فایل متنی با خط یک نیاز مشترک است که از استفاده می کند و از سرفر جلوگیری می کند و / دارای شرایط پایان فایل و خطا است.

#include <stdio.h>
#include <stdlib.h>

int main() {
 FILE *fp = fopen("data.txt", "r");
 if (!fp) {
 perror("fopen");
 return EXIT_FAILURE;
 }
 char line[256];
 while (fgets(line, sizeof(line), fp)) {
 printf("%s", line);
 }
 if (ferror(fp))
 perror("fgets");
 fclose(fp);
 return 0;
}

Dynamic Array of Strings

در این میان، در هر یک از آیات قرآن کریم، از جمله قرآن کریم، سوره ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main() {
 char *words[] = {"apple", "banana", "cherry", "date"};
 size_t num_words = sizeof(words) / sizeof(words[0]);
 // Allocate array of char pointers
 char **copy = malloc(num_words * sizeof(char*));
 if (!copy) return EXIT_FAILURE;
 for (size_t i = 0; i < num_words; i++) {
 copy[i] = malloc(strlen(words[i]) + 1);
 if (copy[i])
 strcpy(copy[i], words[i]);
 }
 // Print and free
 for (size_t i = 0; i < num_words; i++) {
 printf("%s\n", copy[i]);
 free(copy[i]);
 }
 free(copy);
 return 0;
}

مزایای استفاده از کتابخانه استاندارد C

  • کد نوشته شده در برابر کتابخانه استاندارد کامپایل و اجرا بر روی هر پلت فرم انطباق (Windows، Linux، macOS، سیستم های جاسازی شده).
  • بی گمانی: عملکرد کتابخانه به شدت مورد آزمایش قرار می گیرد و موارد لبه (مانند نقطه های null، رشته های خالی و سر و صدا) بهتر از بسیاری از پیاده سازی های دستی است.
  • ارزیابی: پیاده سازی کتابخانه استاندارد اغلب برای سخت افزار هدف بهینه سازی شده است، با استفاده از تکنیک هایی مانند inlining، جداول جستجو و دستورالعمل های سخت افزاری.
  • قابلیت خواندن: استفاده از به جای یک نوع حباب سفارشی بلافاصله هدف را به دیگر توسعه دهندگان ارتباط برقرار می کند.
  • قابلیت نگهداری: کتابخانه ها با استاندارد تکامل می یابند. ارتقاء کامپایلر یا پلت فرم ممکن است به طور خودکار عملکرد عملکرد کتابخانه را بدون لمس کد شما بهبود بخشد.

بهترین تمرین ها و مشکلات رایج

همیشه ارزش های بازگشت را بررسی کنید

در این میان، در این میان، از جمله | و |18|S|S|S|S|FLT:89|S|S|S|Square|S|S|S|S|S|S|S|S|FLT:89|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S

FILE *fp = fopen("nonexistent.txt", "r");
if (!fp) {
 perror("fopen");
 return EXIT_FAILURE;
}

ترجیح دادن عملکرد های Bounded

در این میان، عملکرد هایی مانند و |1|1|1|1|1|1|2|1|1|1|1|1|1|1|1|1|1|و|م|و|و|در غیر این صورت|در دسترس|بگیرنده|و|ب|ب|ب|ب|ب|ب|ب|ب|ب|و|و|و|ب|و|و|و|ب|ب|و|و|و|و|و|ب|ب|ب|و|و|و|ب|و|و|و|و|و|و|و|و|و|و|و|و|و|و|و|ب|ب|و|و|و|و|و|و|و|و|و|و|و|و|و|و|و|و|و|و|و|و|و|و|و|و|و|و|و|و|و|و|و|و|و|و|و|و|و|و|و|و|و|و|و|

char buf[10];
snprintf(buf, sizeof(buf), "%s", "Hello, World!"); // safely truncated

رایگان Allocated Memory

هر کدام از آنها (FLT:97) یا باید دارای یک تطبیق (FLT:99) باشند، از ابزارهایی مانند Valgrind یا Address Sanitizer برای تشخیص نشت حافظه استفاده کنند.

مراقب تجدید نظر باشید

برخی از توابع کتابخانه استاندارد (به عنوان مثال، استفاده از حالت استاتیک داخلی و در برنامه های چند رشته ای، ترجیح می دهند نسخه های تجدید پذیر مانند و یا که در دسترس هستند.

منابع بیشتر

برای عمیق تر کردن درک خود از کتابخانه استاندارد C، با ارجاعات معتبر مشورت کنید:

نتیجه گیری

کتابخانه استاندارد C یک ابزار ضروری برای هر برنامه نویس C است که با تسلط بر هدرها و توابع آن، می توانید کد کوتاه تر، امن تر و قابل حمل تر بنویسید، به جای بازسازی اجزای اساسی، می توانید بر منطق تمرکز کنید که برنامه شما را منحصر به فرد می کند، همانطور که شما در C ادامه می دهید، عادت اول بررسی کنید که آیا کتابخانه استاندارد قبلا مشکل شما را حل می کند - معمولا با عقل جمعی انجام می شود.