PHP参考手册中的openlog函数说明如下:
openlog — Open connection to system logger
Description
bool openlog ( string $ident, int $option, int $facility )
openlog() opens a connection to the system logger for a program.
......
Return Values
Returns TRUE on success or FALSE on failure.
手册里面对openlog这样介绍,让人误认为如果"system logger"没有正常工作或者
停止,则openlog会打开失败,但是实际测试情况是openlog永远返回true!
因为,openlog对C的包装是这样的:
PHP_FUNCTION(openlog)
{
char *ident;
long option, facility;
int ident_len;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sll",
&ident,
&ident_len,
&option, &facility) == FAILURE) {
return;
}
if (BG(syslog_device)) {
efree(BG(syslog_device));
}
BG(syslog_device) = estrndup(ident, ident_len);
openlog(BG(syslog_device), option, facility);
RETURN_TRUE;
}
该函数永远RETURN_TRUE!不知道php手册中还有那些函数存在这种情况?如果只根
据手册来决定处理策略,没有对程序各分支流程进行测试,则可能想当然的情况与
真实情况有较大出入。
该函数出现这种情况,可能和C的标准函数:
man openlog..
SYNOPSIS
#include <syslog.h>
void openlog(const char *ident, int option, int facility);
void syslog(int priority, const char *format, ...);
void closelog(void);
openlog也没有返回值相关
继续看openlog的一个实现版本:
void openlog(char *ident, int option, int facility)
{
struct job *job = gettib()->job;
if (ident && strlen(ident) < 64)
{
if (job->ident)
{
char *oldident = job->ident;
job->ident = strdup(ident);
free(oldident);
}
else
job->ident = strdup(ident);
}
job->facility = facility;
}
该函数只做设置,不会返回成功与否。
linux的glibc的openlog实现也类似,没有相应的返回值。
故php的openlog永远返回true,是符合逻辑但是手册会令人误解的!
分享到:
相关推荐
此外,深入阅读ugopen_doc中的函数说明文件至关重要,每个函数的参数、返回值、使用示例和注意事项都会在这些文档中详细说明。 在实际开发过程中,开发者通常会遇到的问题包括但不限于性能优化、错误调试、数据兼容...
UGOPEN函数参考手册(NX6.0)是UG软件二次开发的重要参考资料,主要面向那些希望利用UG OPEN API来扩展和定制UG NX 6.0功能的开发者。UG NX是一款广泛应用于机械设计、产品工程和仿真领域的高级CAD/CAM/CAE软件。其二...
Open Inventor C++ 参考手册是针对 Open Inventor 图形库的一个官方文档,该手册主要提供了对 Open Inventor C++ API 的详细说明,包括类的层次结构、每个类的方法定义及其功能解释等。这对于使用 Open Inventor ...
《OpenCV函数手册》是关于开源计算机视觉库的详尽参考文档,对于图像处理与分析领域的程序员来说,它是一份不可或缺的学习与工作资料。OpenCV(Open Source Computer Vision Library),即开源计算机视觉库,是由...
10. **系统调用**:Linux C参考手册会详细列出各种系统调用,如open、close、read、write、writev、recvmsg等,这些是与操作系统直接交互的接口。 11. **网络编程**:Linux下的套接字编程是网络应用开发的基础,...
《VB函数参考手册》是一本全面介绍Visual Basic (VB)编程语言中函数使用的电子书籍,对于初学者和有一定经验的开发者来说,都是宝贵的参考资料。VB是Microsoft开发的一种面向对象的编程语言,它以其简单易学、功能...
VB函数参考手册是Visual Basic编程语言的重要组成部分,它包含了丰富的函数和方法,帮助开发者实现各种功能。Visual Basic,简称VB,是由微软公司推出的面向对象的编程环境,它以易学易用著称,广泛应用于软件开发、...
《Linux C函数参考手册》是一本详尽阐述C语言在Linux环境下的函数使用的重要资源,对于程序员和系统管理员来说,是必备的参考资料。手册涵盖了C语言标准库中的各种函数,包括其用途、函数类型、参数解释及其功能,...
VB语言参考及函数速查手册CHM是一个非常实用的资源,旨在为VB编程者提供详尽的语法解释、函数用法以及编程技巧。 该手册的核心内容可能包括以下几个方面: 1. **VB基本语法**:涵盖变量声明、数据类型(如Integer,...
Linux C函数库,通常指的是GNU C Library,也称为glibc,是Linux操作系统中核心的C编程接口。...Linux C函数库参考手册是开发者不可或缺的工具,它能帮助解决编程过程中遇到的各种问题,并确保代码的正确性和兼容性。
OpenLog 是一款开源数据记录器,可通过简单的串行连接工作,并支持高达 64GB 的 microSD 卡。 存储库内容 /文档- 数据表、附加产品信息 /Firmware - OpenLog 的示例草图,以及连接到 OpenLog 的 Arduino。 /...
OpenLog 的黑盒固件 这个OpenLog 3 Light的修改版本修改了通常用于配置 OpenLog 的“CONFIG.TXT”系统,以简化可用设置并确保它与 Blackbox 兼容。CONFIG.TXT 中唯一可用的设置是波特率,默认为 115200。 您将在...
Linux C函数参考手册是每一位从事Linux系统开发的程序员不可或缺的工具书。这本手册以CHM(Microsoft Compiled HTML Help)格式提供,便于快速查找和学习C语言在Linux环境下的使用。CHM格式集成了HTML文档的优点,...
Linux_C函数参考手册是一份详细列举了Linux环境下常用C函数的资源,对于开发者来说是不可或缺的工具。这份手册包含了丰富的信息,旨在帮助程序员理解和使用Linux系统中的C库函数,提高开发效率。 手册可能涵盖了...
CAPL语言参考手册中通常包含以下内容: 1. 语言基础:包括CAPL的基本语法、数据类型、控制结构、函数和模块化编程等相关知识点。这些是编写CAPL脚本时必须了解的基础知识。 2. 内置函数:手册会介绍大量的内置函数...
VB函数参考手册是一份极其重要的资源,对于学习和掌握Visual Basic (VB)编程语言的开发者来说,它无疑是不可或缺的工具。这份手册详细介绍了VB中的各种函数及其用法,旨在帮助初学者快速上手,同时也为有经验的...
文件列表中的“aspsun.com-readme.txt”可能是手册的阅读指南或版权信息,而“Perl语言参考手册(中文html)”则是手册的主体部分,包含完整的Perl语言知识体系。通过深入学习和实践,你可以掌握Perl语言,从而解决...
本速查手册《C语言标准函数库速查手册.chm》是一个实用的参考资料,它详细列举了C标准库中的各种函数,帮助开发者快速查找和理解这些函数的用法。手册可能包括以下内容: 1. **输入/输出(I/O)**:头文件中的函数...