File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / ftok.c
Revision 1.1.1.4 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Sun Jun 15 20:03:57 2014 UTC (10 years, 1 month ago) by misho
Branches: php, MAIN
CVS tags: v5_4_29, HEAD
php 5.4.29

    1: /* 
    2:    +----------------------------------------------------------------------+
    3:    | PHP Version 5                                                        |
    4:    +----------------------------------------------------------------------+
    5:    | Copyright (c) 1997-2014 The PHP Group                                |
    6:    +----------------------------------------------------------------------+
    7:    | This source file is subject to version 3.01 of the PHP license,      |
    8:    | that is bundled with this package in the file LICENSE, and is        |
    9:    | available through the world-wide-web at the following url:           |
   10:    | http://www.php.net/license/3_01.txt                                  |
   11:    | If you did not receive a copy of the PHP license and are unable to   |
   12:    | obtain it through the world-wide-web, please send a note to          |
   13:    | license@php.net so we can mail you a copy immediately.               |
   14:    +----------------------------------------------------------------------+
   15:    | Author: Andrew Sitnikov <sitnikov@infonet.ee>                        |
   16:    +----------------------------------------------------------------------+
   17: */
   18: 
   19: /* $Id: ftok.c,v 1.1.1.4 2014/06/15 20:03:57 misho Exp $ */
   20: 
   21: #include "php.h"
   22: 
   23: #include <sys/types.h>                                                                                                        
   24: 
   25: #ifdef HAVE_SYS_IPC_H
   26: #include <sys/ipc.h>
   27: #endif
   28: 
   29: #if HAVE_FTOK
   30: /* {{{ proto int ftok(string pathname, string proj)
   31:    Convert a pathname and a project identifier to a System V IPC key */
   32: PHP_FUNCTION(ftok)
   33: {
   34: 	char *pathname, *proj;
   35: 	int pathname_len, proj_len;
   36: 	key_t k;
   37: 
   38: 	if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ps", &pathname, &pathname_len, &proj, &proj_len) == FAILURE) {
   39: 		return;
   40: 	}
   41: 
   42: 	if (pathname_len == 0){
   43: 		php_error_docref(NULL TSRMLS_CC, E_WARNING, "Pathname is invalid");
   44: 		RETURN_LONG(-1);
   45: 	}
   46: 
   47: 	if (proj_len != 1){
   48: 		php_error_docref(NULL TSRMLS_CC, E_WARNING, "Project identifier is invalid");
   49: 		RETURN_LONG(-1);
   50: 	}
   51: 
   52: 	if (php_check_open_basedir(pathname TSRMLS_CC)) {
   53: 		RETURN_LONG(-1);
   54: 	}
   55: 
   56: 	k = ftok(pathname, proj[0]);
   57: 	if (k == -1) {
   58: 		php_error_docref(NULL TSRMLS_CC, E_WARNING, "ftok() failed - %s", strerror(errno));
   59: 	}
   60: 
   61: 	RETURN_LONG(k);
   62: }
   63: /* }}} */
   64: #endif
   65: 
   66: /*
   67:  * Local variables:
   68:  * tab-width: 4
   69:  * c-basic-offset: 4
   70:  * End:
   71:  */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>