亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

如何在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
都昌县| 望都县| 历史| 万全县| 永丰县| 永泰县| 郓城县| 临海市| 尚志市| 图木舒克市| 巴林左旗| 黔南| 北安市| 德昌县| 墨玉县| 黄冈市| 毕节市| 厦门市| 万宁市| 镇宁| 体育| 资兴市| 喜德县| 商南县| 哈巴河县| 鄂托克前旗| 汕尾市| 泸水县| 社会| 沙河市| 阿克| 博白县| 南安市| 汾西县| 二连浩特市| 汶上县| 徐水县| 琼结县| 永春县| 会宁县| 湘潭县|