Hi,
I am using the zend_parse_parameter function to
retrieve a string passed to my function like:
char* s, int sl;
zend_parse_parameter(ZEND_NUM_ARGS() TSRMLS_CC,"s",
&s,&sl);
and then later I am using the memcmp function to test
2 strings like:
memcmp(key,s,sl);
but for some reason, the memcmp never return 0
indicates key and s is the same even I KNOW key and s
is indeed the same. key and s is always of the same
length. In fact, even doing a:
fprintf(stderr,"[%s %i]\n",s,sl);
yields different result for s and sl than what's
really passed to my function. Why is that? Is there a
bug in the zend_parse_paramter function that I am not
aware of? I should mention that:
- The string is always ASCII
- Sometimes, I do see the expected result but not all
the time. That's what makes me so confuse.
Thanks!
Do you Yahoo!?
Yahoo! SiteBuilder - Free web site building tool. Try it!
http://webhosting.yahoo.com/ps/sb/
I am using the zend_parse_parameter function to
retrieve a string passed to my function like:char* s, int sl;
You need to use a long for sl here.
zend_parse_parameter(ZEND_NUM_ARGS() TSRMLS_CC,"s", &s,&sl);
Shouldn't it be zend_parse_parameters (with an extra s?)
and then later I am using the memcmp function to test
2 strings like:memcmp(key,s,sl);
but for some reason, the memcmp never return 0
indicates key and s is the same even I KNOW key and s
is indeed the same. key and s is always of the same
length. In fact, even doing a:fprintf(stderr,"[%s %i]\n",s,sl);
yields different result for s and sl than what's
really passed to my function. Why is that? Is there a
bug in the zend_parse_paramter function that I am not
aware of? I should mention that:
- The string is always ASCII
- Sometimes, I do see the expected result but not all
the time. That's what makes me so confuse.
Might be memory curruption somewhere else, try to run with valgrind to
see if that's the case.
regards,
Derick