开发者社区 问答 正文

关于linux下open函数的问题

我写一个socket传送文件程序,我先定义了一个char型buffer【100】,然后fgets(buffer,100,stdin),最后open(buffer,O_RDONLY),输入的是/mnt/hgfs/sky/a.txt,运行时,open失败,但是我直接把buffer换成"/mnt/hgfs/sky/a.txt",就打开成功了,请问第一个参数能照我这样给吗?

展开
收起
a123456678 2016-06-12 15:24:03 2127 分享 版权
1 条回答
写回答
取消 提交回答
  • fgets() 会把行尾的 'n' 也读入,也就是说你用 fgets(buffer,100,stdin) 读入的很可能是"/mnt/hgfs/sky/a.txtn0" , 你可以打印出字符串所有内容确认一下是否因为这个原因导致 open() 调用失败的。

    2019-07-17 19:34:12
    赞同 展开评论
问答分类:
问答地址: