3 | int main(int agrc,char*agrv) | ^~~~ copymain.cpp: In function ‘int main(int, char*)’: copymain.cpp:7:19: error: ‘STDIN_FILENO’ was not declared in this scope 7 | while(0<(n==read(STDIN_FILENO,buf,BUFFSIZE))) | ^~~~~~~~~~~~ copymain.cpp:7:14: error: ‘read’ was not declared in this scope; did you mean ‘fread’? 7 | while(0<(n==read(STDIN_FILENO,buf,BUFFSIZE))) | ^~~~ | fread copymain.cpp:9:12: error: ‘STDOUT_FILENO’ was not declared in this scope 9 | if(write(STDOUT_FILENO,buf,n)!=n) | ^~~~~~~~~~~~~ copymain.cpp:9:6: error: ‘write’ was not declared in this scope; did you mean ‘fwrite’? 9 | if(write(STDOUT_FILENO,buf,n)!=n)
时间: 2024-04-25 21:27:02 浏览: 251
这是一个 C++ 的编译错误,其中包含了一些符号没有被声明的错误。其中的 `STDIN_FILENO`,`read`,`STDOUT_FILENO`,`write` 都是在 `unistd.h` 头文件中定义的符号。
你需要在代码文件的头部加入 `#include <unistd.h>` 来包含这些符号的声明。这样编译器就能正确地识别它们了。
相关问题
copymain.cpp:4:5: warning: second argument of ‘int main(int, char*)’ should be ‘char **’ [-Wmain] 4 | int main(int agrc,char*agrv)
这是一个 C++ 的编译警告,它表示 `int main(int agrc,char*agrv)` 的第二个参数应该是 `char **`,而不是 `char *`。
在 C++ 中,`main` 函数的第二个参数应该是一个指向字符串数组的指针,也就是 `char **` 类型。因此,你需要将 `char*agrv` 改为 `char** agrv` 来解决这个警告:
```cpp
int main(int argc, char **argv) {
// your code here
}
```
这样编译器就不会再发出这个警告了。
int agrc是什么意思
agrc 是一个变量,它表示命令行参数的数量。在 C 语言中,main 函数的原型为 int main(int argc, char *argv[]),其中 argc 表示命令行参数的数量,argv 是一个指向字符串数组的指针,每个字符串表示一个命令行参数。
阅读全文