Linux 提供的系统调用API,通常会在失败的时候返回 -1。如果想获取更多更详细的报错信息,需要借助全局变量 errno 和 perror 函数:
#include <stdio.h> void perror(const char *s); #include <errno.h> const char *sys_errlist[]; int sys_nerr; int errno;代码执行过程中发生错误时,Linux 会将 errno 这个全局变量设置为合适的值。errno 就是一个整数,对应系统中预先定义好的一个提示字符串。
perror 函数会读取 errno,然后找到预定义的提示字符串,最后将参数字符串、已定义的提示字符串拼接到一起,中间用冒号加空格分隔。相当于给错误信息加的注释。
报错提示为:
2 this is my error: No such file or directoryC 程序的入口是 main 函数,其完整写法是包含两个参数的:
int main(int argc, char* argv[]);其中第一个参数是命令行参数的个数,第二个参数是命令行参数数组。
例如下面这段代码:
#include <stdio.h> int main(int argc, char* argv[]) { printf("argc is: %d\n", argc); printf("argv[0] is: %s\n", argv[0]); }执行的命令默认是第一个参数,所以无任何参数时的输出为:
argc is: 1 argv[0] is: ./a.out可以借助 argc 来遍历所有的参数:
#include <stdio.h> int main(int argc, char* argv[]) { int i; printf("argc is: %d\n", argc); for (i = 0; i < argc; i++) { printf("argv[%d] is: %s\n", i, argv[i]); } }执行命令,同时传入参数:
# ./a.out 666 hello world test haha argc is: 6 argv[0] is: ./a.out argv[1] is: 666 argv[2] is: hello argv[3] is: world argv[4] is: test argv[5] is: haha转载于:https://www.cnblogs.com/kika/p/10851502.html
