簡體   English   中英

header 文件之間的區別“<stdio.h> “ 和 ”<stdlib.h> ”</stdlib.h></stdio.h>

[英]difference between header files “<stdio.h>” and “<stdlib.h>”

C編程中的header文件“ <stdio.h> ”和“ <stdlib.h> ”有什么區別?

一個有一組 function 聲明、常量、宏和類型定義,另一個有一組不同的 function 聲明、常量、宏和類型定義。 如果您想查看內容,可以使用簡單的文本編輯器打開文件。


stdio代表標准輸入/輸出,其內容通常但不完全與輸入 output 操作有關,無論是硬件或物理設備,還是系統支持的文件。 可以在此處找到可用的函數聲明、宏和類型定義的列表:

功能:

  • 文件操作:

    • remove - 刪除文件

    • 重命名 - 重命名文件

    • tmpfile - 打開一個臨時文件

    • tmpnam - 生成臨時文件名

  • 文件訪問:

    • fclose - 關閉文件

    • fflush - 刷新 stream

    • fopen - 打開文件

    • freopen - 使用不同的文件或模式重新打開 stream

    • setbuf - 設置 stream 緩沖區

    • setvbuf - 更改 stream 緩沖

  • 格式化輸入/輸出:

    • fprintf - 將格式化數據寫入 stream

    • fscanf - 從 stream 讀取格式化數據

    • printf - 將格式化數據打印到標准輸出

    • scanf - 從標准輸入讀取格式化數據

    • snprintf - 將格式化的 output 寫入大小緩沖區

    • sprintf - 將格式化數據寫入字符串

    • sscanf - 從字符串中讀取格式化數據

    • vfprintf - 將格式化數據從變量參數列表寫入 stream

    • vfscanf - 從 stream 讀取格式化數據到變量參數列表中

    • vprintf - 將變量參數列表中的格式化數據打印到標准輸出

    • vscanf - 將格式化數據讀入變量參數列表

    • vsnprintf - 將變量參數列表中的格式化數據寫入大小緩沖區

    • vsprintf - 將變量參數列表中的格式化數據寫入字符串

    • vsscanf - 將格式化數據從字符串讀取到變量參數列表中

  • 字符輸入/輸出:

    • fgetc - 從 stream 獲取字符

    • fgets - 從 stream 獲取字符串

    • fputc - 將字符寫入 stream

    • fputs - 將字符串寫入 stream

    • getc - 從 stream 獲取字符

    • getchar - 從標准輸入中獲取字符

    • 獲取 - 從標准輸入獲取字符串

    • putc - 將字符寫入 stream

    • putchar - 將字符寫入標准輸出

    • puts - 將字符串寫入標准輸出

    • ungetc - 從 stream 中獲取字符

  • 直接輸入/輸出:

    • fread - 從 stream 讀取數據塊

    • fwrite - 將數據塊寫入 stream

  • 文件定位:

    • fgetpos - 在 stream 中獲取當前 position

    • fseek - 重新定位 stream position 指示器

    • fsetpos - 設置 stream 的 position 指標

    • ftell - 在 stream 中獲取當前 position

    • 倒帶 - 將 stream 的 position 設置為開頭

  • 錯誤處理:

    • clearerr - 清除錯誤指示器

    • feof - 檢查文件結束指示符

    • ferror - 檢查錯誤指示器

    • perror - 打印錯誤信息

宏:

  • BUFSIZ - 緩沖區大小

  • EOF - 文件結束

  • FILENAME_MAX - 文件名的最大長度

  • FOPEN_MAX - 同時打開的流的潛在限制

  • L_tmpnam - 臨時文件名的最小長度

  • NULL-Null指針(宏)

  • TMP_MAX - 臨時文件數

  • 另外:_IOFBF、_IOLBF、_IONBF(與 setvbuf 一起使用)和 SEEK_CUR、SEEK_END 和 SEEK_SET(與 fseek 一起使用)。

類型:

  • 文件 - Object 包含控制 stream 的信息

  • fpos_t - Object 包含在文件中指定 position 的信息

  • size_t - 無符號整數類型


stdlib代表標准庫,它具有通用功能,包括動態 memory 管理、隨機數生成、通信、算術、搜索、排序和轉換等。可用的函數聲明、宏和類型定義列表可以在這里找到

功能

  • 字符串轉換

    • atof - 將字符串轉換為雙精度

    • atoi - 將字符串轉換為 integer

    • atol - 將字符串轉換為長 integer

    • atoll - 將字符串轉換為長 integer

    • strtod - 將字符串轉換為雙精度

    • strtof - 將字符串轉換為浮點數

    • strtol - 將字符串轉換為長 integer

    • strtold - 將字符串轉換為長雙精度

    • strtoll - 將字符串轉換為 long long integer

    • strtoul - 將字符串轉換為無符號長 integer

    • strtoull - 將字符串轉換為無符號長長 integer

  • 偽隨機序列生成

    • rand - 生成隨機數

    • srand - 初始化隨機數生成器

  • 動態 memory 管理

    • calloc - 分配和零初始化數組

    • 免費 - 釋放 memory 塊

    • malloc - 分配 memory 塊

    • realloc - 重新分配 memory 塊

  • 環境

    • abort - 中止當前進程

    • atexit - 設置 function 在退出時執行

    • at_quick_exit - 設置 function 在快速退出時執行

    • exit - 終止調用進程

    • getenv - 獲取環境字符串

    • quick_exit - 快速終止調用進程

    • system - 執行系統命令

    • _Exit - 終止調用進程

  • 搜索和排序

    • bsearch - 數組中的二進制搜索

    • qsort - 對數組元素進行排序

  • Integer 算術

    • abs - 絕對值

    • div - 積分除法

    • 實驗室 - 絕對值

    • ldiv - 積分除法

    • llabs - 絕對值

    • lldiv - 積分除法

  • 多字節字符

    • mblen - 獲取多字節字符的長度

    • mbtowc - 將多字節序列轉換為寬字符

    • wctomb - 將寬字符轉換為多字節序列

  • 多字節字符串

    • mbstowcs - 將多字節字符串轉換為寬字符串

    • wcstombs - 將寬字符串轉換為多字節字符串

宏常量

  • EXIT_FAILURE - 失敗終止代碼

  • EXIT_SUCCESS - 成功終止代碼

  • MB_CUR_MAX - 多字節字符的最大大小

  • NULL - Null 指針

  • RAND_MAX - rand 返回的最大值

類型

  • div_t - div 返回的結構

  • ldiv_t - ldiv 返回的結構

  • lldiv_t - lldiv 返回的結構

  • size_t - 無符號整數類型

區分這兩個 header 文件的一種簡單方法是“<stdio.h>”包含 printf() 和 scanf() 的聲明,而“<stdlib.h>”包含 malloc() 和 free() 的聲明。 In that sense, the main difference in these two header files can considered that, while “<stdio.h>” contains header information for 'File related Input/Output' functions, “<stdlib.h>” contains header information for 'Memory分配/釋放'功能。

它們有不同的內容。

C 標准庫分為幾個主要區域,每個區域都有一個單獨的 header 文件。

stdio.h (標准 I/O)包含宏定義、類型定義和 function 聲明,用於處理文本和二進制 I/O( printfscanffopengetchar等)的例程。

stdlib.h (standard library) contains macro definitions, type definitions, and function declarations for routines dealing with memory management, text-to-numeric conversions, random numbers, etc. ( malloc , calloc , strtol , rand , etc.).

標准輸出

C library to perform Input/Output operations Input and Output operations can also be performed in C++ using the C Standard Input and Output Library (cstdio, known as studio. h in the C language). 該庫使用流來操作物理設備,例如鍵盤、打印機、終端或系統支持的任何其他類型的文件。 流是與這些統一交互的抽象; 所有流都具有相似的屬性,與物理媒體的個體特征無關。

流在 cstdio 庫中作為指向 FILE 對象的指針進行處理。 指向 FILE object 的指針唯一標識 stream,並在涉及該 stream 的操作中用作參數。

還存在三個標准流:stdin、stdout 和 stderr,它們是為使用該庫的所有程序自動創建和打開的。

標准庫文件

<stdlib.h> 庫(用於標准庫)提供了回答各種問題的函數。 首先,這個庫將允許您通過在堆中分配或釋放 memory 來動態管理 memory。 它還允許您與運行程序的操作系統進行交互。 該庫還提供了許多其他實用功能,用於在數據類型、算法(排序、二分搜索、偽隨機數的生成等)和其他一些可能性之間進行轉換。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM