当标志是字符字符串指针而不是int时,open()函数出错 #包括 #包括 #包括 #包括 #包括 int main(int argc,char*argv[]) { int-fd; int i=1; 对于(i=1;i
您传递的是一个当标志是字符字符串指针而不是int时,open()函数出错 #包括 #包括 #包括 #包括 #包括 int main(int argc,char*argv[]) { int-fd; int i=1; 对于(i=1;i,c,unix,C,Unix,您传递的是一个字符*,而不是一个整数常量。请删除“,它应该是: fd=open(argv[i],"O_RDWR"); ^ ^ 有趣的是,open一定认为您通过了O|u CREAT | O_exc,这就是它抱怨文件已经存在的原因 那么我所说的wriiten是对的???但是代码正在进入一个 无穷尽 函数read(2)在和输入时不返回EOF,而是返回0 您传递的是一个字符*,而不是一个整数常量。请删除“,它应该是: fd=open(argv[i],"O_
字符*
,而不是一个整数常量。请删除“
,它应该是:
fd=open(argv[i],"O_RDWR");
^ ^
有趣的是,
open
一定认为您通过了O|u CREAT | O_exc
,这就是它抱怨文件已经存在的原因
那么我所说的wriiten是对的???但是代码正在进入一个 无穷尽 函数
read(2)
在和输入时不返回EOF
,而是返回0
您传递的是一个字符*
,而不是一个整数常量。请删除“
,它应该是:
fd=open(argv[i],"O_RDWR");
^ ^
有趣的是,
open
一定认为您通过了O|u CREAT | O_exc
,这就是它抱怨文件已经存在的原因
那么我所说的wriiten是对的???但是代码正在进入一个 无穷尽
函数
读取(2)
不会在输入和处返回EOF
,而是0
如果在打开警告的情况下编译,则肯定会为该程序返回一个。标志参数是一组位,用无符号整数表示。如果在打开警告的情况下编译,谁知道传递了哪些无意义的标志对于这个程序,你肯定会得到一个。标志参数是一堆位,用无符号整数表示。谁知道传递了什么无意义的标志…好的…谢谢…还有一件事读取的第二个参数是什么?手册页说它是空的*buf…我不知道understand@Nikhil它是一个缓冲区,read(2)
将存储它读取的内容。它必须准备好至少保存第三个参数指定的读取量。所以我的wriiten是正确的???但是代码将进入无限外观打印nothinOh..k..k…非常感谢…只需再澄清一点..文件末尾的temp将具有EOF字符,对吗?@N我知道Unix上没有EOF字符。文件在inode显示的结尾处结束。好的…谢谢…还有一件事read的第二个论点是什么?手册页说它是无效的*buf…我不知道understand@Nikhil它是一个缓冲区,read(2)
将存储它读取的内容。它必须准备好至少保存第三个参数指定的读取量。所以我的wriiten是正确的???但是代码将进入无限外观打印nothinOh..k..k…非常感谢…只需再澄清一点..文件末尾的temp将具有EOF字符,对吗?@Nikhil Unix上没有EOF字符。文件在inode指定的结束位置结束。
fd = open(argv[i], O_RDWR);