fd = open("test.txt", O_RDWR);
if(fd==-1)
printf(":%m\n"),exit(-1);
之前没有在printf中用过%m, 今天看到这段代码 觉得理解不了,有大佬愿意解释一下吗?
还有printf语句和exit语句中间的逗号是什么作用?
%m是输出错误信息的,但是逗号就不知道了,c语句结束应该是分号,估计写错了吧,
不是写错了 c语言里面有个逗号表达式,,意思是 输出了错误信息 后退出程序
%m是GNU C Library 对printf的扩展。
意思是输出错误码对应的字符串。
printf(":%m\n") 相当于
printf(":%s\n", strerror (errno))
printf语句和exit语句中间的逗号,代表这是一个逗号表达式,逗号表达式的优先级别最低,
其求解过程是先表达式1,后表达式2,整个表达式值是表达式2的值。
如果想详细了解,可以参考:
http://c.biancheng.net/cpp/html/27.html
用心回答每个问题,如果对您有帮助,请采纳答案好吗,谢谢!