91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

如何在Linux中替代gets函數

小樊
87
2024-09-14 02:14:45
欄目: 智能運維

在 Linux 中,gets() 函數已被棄用,因為它容易導致緩沖區溢出

  1. 使用 fgets()

fgets() 函數可以從文件流(如標準輸入)中讀取一行字符串。這是一個更安全的替代方法。

#include<stdio.h>

int main() {
    char buffer[256];

    printf("請輸入一行文本:");
    fgets(buffer, sizeof(buffer), stdin);

    printf("你輸入的內容是:%s", buffer);
    return 0;
}
  1. 使用 getline()

getline() 函數可以動態分配足夠的內存來存儲輸入的行。這需要包含 <stdlib.h> 頭文件。

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

int main() {
    char *buffer = NULL;
    size_t len = 0;
    ssize_t read;

    printf("請輸入一行文本:");
    read = getline(&buffer, &len, stdin);

    if (read != -1) {
        printf("你輸入的內容是:%s", buffer);
    }

    free(buffer);
    return 0;
}

請注意,getline() 函數是 POSIX 標準的一部分,可能不適用于所有系統。在編寫可移植代碼時,請謹慎使用。

0
诸暨市| 宜昌市| 伊宁市| 亳州市| 宣威市| 湟源县| 吴堡县| 普陀区| 九龙坡区| 沂源县| 关岭| 黑河市| 东兴市| 乌苏市| 沙河市| 建德市| 洪雅县| 宁阳县| 永昌县| 晋城| 永宁县| 汪清县| 岗巴县| 姚安县| 镇坪县| 湘潭县| 浦县| 怀化市| 永丰县| 开鲁县| 开江县| 马关县| 太康县| 临泽县| 双牌县| 台安县| 吉安市| 天长市| 焉耆| 西安市| 井研县|