c - 请问,为什么当我运行这段代码时,它会打印一个额外的“n”?
问题描述
我正在尝试使用此代码获取 pid。但是当我运行编译的代码时。我收到一条错误消息“警告:格式指定类型'unsigned long',但参数的类型为'pid_t'(又名'int')[-Wformat]”。
当我将格式说明符更改为“%lu”时,它不会打印额外的字符。
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
int main()
{
pid_t pid = getpid();
printf("pid: %lun", pid);
}
我预计 pid 为“60316”。我得到“60316n”的pid。
解决方案
n
出于同样的原因p
打印出来。 n
不是说明符的一部分。
vvv --- specifier for unsigned long
"pid: %lun"
^^^^^ ^ --- non-specifier characters
在旁边:
pid_t
数据类型是有符号整数类型, 能够表示进程 ID
推荐阅读
- python - 如何循环遍历csv文件scrapy中的起始网址
- algorithm - 如何使用离散的方法进行优化算法
- html - 离子组件 - VSCode html 编辑器中的所有红色
- javascript - 如何显示包含当前键的数组中的对象?
- reactjs - 动态添加项目 VS 滚动行为
- c# - 我正在尝试使用 MVC C# 在 SQL 中记录审计表,以使用控制器跟踪编辑
- html - 如何正确使用 html-to-react?
- php - 用正则表达式替换多个单词
- python - 如何强制Python决策树每次只在一个节点上继续分裂(每次形成一个节点/叶子)
- amazon-web-services - AWS EKS,如何直接从浏览器中访问 Pod?