c++ - 为什么 syslog 有两个不同的函数声明?
问题描述
根据 Linux 手册页1和2,该函数syslog
有两个不同的函数声明,如下所示:
int syslog(int type, char *bufp, int len);
void syslog(int priority, const char *format, ...);
但是,除了 C++,C 中没有函数重载。
如何解释事实?
解决方案
syslog(2)
一个在手册页 (*) 的第 2 ( ) 节中定义,因此是系统调用。另一个来自第 3 ( syslog(3)
) 节,因此是 C 库函数。
所以“技术上”它们是碰巧具有相同名称的不同功能(尽管它们当然是相关的,因为(3)正在使用(2))。
(*) 请参阅手册页部分。
推荐阅读
- php - Laravel 5.8 上传图片
- azure - 确定从第三方组织的 Azure Active Directory 租约中删除的用户是否无效
- mongoose - 索引的未设置字段使:E11000 重复键错误集合
- flutter - 如何阅读未来
小路? - python - 给定索引列表,如何在没有 for 循环的情况下进行多次添加操作?
- reactjs - Standard way of reconnecting to webSocket server in redux-Saga?
- android - 如何从服务器应用程序获取通知到客户端应用程序?
- shell - 使用 check_mk 监控本地端口的脚本
- python - 我在 matplotlib 文档上找不到类/属性
- java - 当我尝试运行我的 java 代码时,我无法找到或加载主类