From 39f307550002d64067bc6d89fd70b72f38d76cc9 Mon Sep 17 00:00:00 2001 From: Stanislav Malyshev Date: Thu, 15 Nov 2001 09:53:40 +0000 Subject: Check in ftok() function by Andrew Sitnikov --- ext/standard/ftok.c | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 ext/standard/ftok.c (limited to 'ext/standard/ftok.c') diff --git a/ext/standard/ftok.c b/ext/standard/ftok.c new file mode 100644 index 0000000000..0346e2444c --- /dev/null +++ b/ext/standard/ftok.c @@ -0,0 +1,66 @@ +/* + +----------------------------------------------------------------------+ + | PHP version 4.0 | + +----------------------------------------------------------------------+ + | Copyright (c) 1997-2001 The PHP Group | + +----------------------------------------------------------------------+ + | This source file is subject to version 2.02 of the PHP license, | + | that is bundled with this package in the file LICENSE, and is | + | available at through the world-wide-web at | + | http://www.php.net/license/2_02.txt. | + | If you did not receive a copy of the PHP license and are unable to | + | obtain it through the world-wide-web, please send a note to | + | license@php.net so we can mail you a copy immediately. | + +----------------------------------------------------------------------+ + | Authors: Andrew Sitnikov +#include + +/* {{{ proto int ftok(string pathname, char proj) + convert a pathname and a project identifier to a System V IPC key */ +PHP_FUNCTION(ftok) +{ + pval **pathname, **proj; + + key_t k; + + if(ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &pathname, &proj) == FAILURE) { + WRONG_PARAM_COUNT; + } + + convert_to_string_ex(pathname); + convert_to_string_ex(proj); + + if (Z_STRLEN_PP(pathname)==0){ + php_error(E_WARNING, "Invalid argument 1 in ftok"); + RETURN_LONG(-1); + } + + if (Z_STRLEN_PP(proj)!=1){ + php_error(E_WARNING, "Invalid argument 2 in ftok"); + RETURN_LONG(-1); + } + + k = ftok(Z_STRVAL_PP(pathname),Z_STRVAL_PP(proj)[0]); + + RETURN_LONG(k); +} +/* }}} */ + +#endif + +/* + * Local variables: + * tab-width: 4 + * c-basic-offset: 4 + * End: + */ -- cgit v1.2.1