【发布时间】:2017-11-14 20:17:24
【问题描述】:
C 函数 printf 似乎根据是否存在前导零来打印不同的值。
我试图确定 Linux 'open' 系统调用中 mode 参数的数值。printf("mode:%d\n",S_IRWXU);printf("mode:%d\n",00700);
两者都给了我 448,而
printf("mode:%d\n",700); 给了我 700,正如我对两者的期望一样。
这是怎么回事?
我正在使用 gcc(Ubuntu 5.4.0-6ubuntu1~16.04.5)5.4.0 20160609
【问题讨论】:
-
前导
0用于八进制。 -
@Abraham McIlvaine 考虑这个调用的输出。 printf("模式:%#o\n", 448);
标签: c printf constants system-calls