Hi!
If this is not the group to discuss the issues of writing extensions please let me
know, but for now I have a question:
What causes php to crash after 256 executions of my extension? / How can this be
avoided?
The extension opens a file (on the server), writes some values into it and closes the
file (yes, I did not forget the fclose!).
I use the standard C file handling commands (fopen, ...). Additionally some mysql
requests are done.
The whole extension works fine, it reads the right values, creates the file and stores
the values in a correct way. It's just
that it crashes after 256 executions.
With PHP used as a module it does not make a difference if the requests to the ext
were made from one or from several
pages. With PHP used as a cgi binary it crashes only if the requests were all done
from one page.
The error messages are:
for the CGI binary:
"PHP caused an invalid page fault in PHP4TS.DLL"
for the module:
"APACHE caused an invalid page fault in PHP4TS.DLL"
In the first case APACHE continues to behave exactly like before the crash, and I get
an Internal Sever Error,
if the latter case APACHE crashes again and again until I press the stop button of the
browser.
I would be grateful If you could tell me were the error lies,
Basti
PS: some more useful information:
About the environment:
Windows 98 SE,
PHP 4.1.1,
Apache 1.3.14,
MySql 3.23 beta,
The extension was compiled using MS Visual C++ 6.0
The browser is running on the same machine as the servers.
Some part of the code:
FILE * open_matfile(char * mode){
FILE * mf;
mf=fopen("d:\\studium\\pilanesberg\\homepage\\matrix.dat", mode);
if (!mf) {
zend_printf("Error opening matrix file in mode %s: %i.<br>",mode,
ferror(mf));
}
return (mf);
}
int store_matrix(int dMat[][MAXI], int nMat[][MAXI], int nodes[], int numOfNodes){
FILE *matFile; //the matrix file
matFile=open_matfile("wb");
{...}
fclose(matFile);
return(0);
}
int load_matrix(int dMat[][MAXI], int nMat[][MAXI], int nodes[MAXI/2]){
FILE *matFile;
matFile=open_matfile("rb");
if (!matFile) {return(0);}
{...}
if (fclose(matFile)){
zend_printf("Error closing matrix file<br>");
return(0);
}
{...}
}
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php