读取系统调用垃圾字符

时间:2014-03-13 20:35:58

标签: c unix system-calls

我正在尝试读取用户输入的文件名,然后我尝试打开指定的文件。我得到的问题是在输入的末尾似乎添加了垃圾字符。 (我在尝试printf()userInput变量时发现了这一点)。

if(read(0, userInput, 128) < 0)
    write(2, "An error occurred in the read.\n", 31); 

知道出了什么问题吗? 我从codewiki得到了这个代码 感谢

1 个答案:

答案 0 :(得分:0)

您还没有发布足够的信息来发布明确的答案,但这是我有根据的猜测:

C字符串以空值终止。如果您只读取部分字符串并且不要终止它,但尝试将其打印为C字符串,则会产生未定义的行为 - 实际上,您会看到它后面的垃圾。< / p>