Difference between revisions of "C.php"
From Organic Design wiki
(allow gcc switches in query-string) |
m (merge streams) |
||
Line 10: | Line 10: | ||
if ($switches = $_REQUEST['switches']) $gcc .= " $switches"; | if ($switches = $_REQUEST['switches']) $gcc .= " $switches"; | ||
$out = $htdocs.'wiki/a.out'; | $out = $htdocs.'wiki/a.out'; | ||
− | $ | + | $stdout = $htdocs.'wiki/a.stdout'; |
+ | $stderr = $htdocs.'wiki/a.stderr'; | ||
// Write the source to tmp file source.c | // Write the source to tmp file source.c | ||
Line 20: | Line 21: | ||
// Compile & excecute | // Compile & excecute | ||
$article = "Compiling using $gcc\n\n"; | $article = "Compiling using $gcc\n\n"; | ||
− | shell_exec("$gcc $src 1>$ | + | shell_exec("$gcc $src 1>$stdout 2>$stderr"); |
− | $article .= file_get_contents($ | + | $article .= file_get_contents($stdout).file_get_contents($stderr); |
$article .= "\n\nExecuting compiled result:\n"; | $article .= "\n\nExecuting compiled result:\n"; | ||
$article .= shell_exec("$out 2>&1"); | $article .= shell_exec("$out 2>&1"); | ||
?> | ?> |
Revision as of 05:53, 24 June 2006
<?
- C compiler for XmlWiki Environment
xwSetProperty($properties,'language','TEXT'); $server = $_SERVER['HTTP_HOST']; $htdocs = $_SERVER['DOCUMENT_ROOT']; if ( !ereg( "\\/$", $htdocs ) ) $htdocs .= '/';
$src = $htdocs.'wiki/source.c'; $gcc = '/usr/bin/gcc'; // diagnostics please if ($switches = $_REQUEST['switches']) $gcc .= " $switches"; $out = $htdocs.'wiki/a.out'; $stdout = $htdocs.'wiki/a.stdout'; $stderr = $htdocs.'wiki/a.stderr';
// Write the source to tmp file source.c if ($handle = fopen($src, 'w+')) {
fwrite($handle, "$article\n"); fclose($handle); }
// Compile & excecute $article = "Compiling using $gcc\n\n"; shell_exec("$gcc $src 1>$stdout 2>$stderr"); $article .= file_get_contents($stdout).file_get_contents($stderr); $article .= "\n\nExecuting compiled result:\n"; $article .= shell_exec("$out 2>&1"); ?>