当标志是字符字符串指针而不是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);