[ EXeX @ 13.10.2004. 23:10 ] @
Zanima me kao pokrenuti iz PHP-a C program.
Ja sam koristio funkciju exec ali jednostavno se nista ne desava.

Evo C programa koji je kompajliran kao:
gcc programc.c -o programc.c

#include <stdio.h>

int main()
{
FILE *dat;
dat=fopen("datoteka","w");

if ( dat == NULL )
printf ( "Nije moguce pronaci datoteku\n" );
else
fprintf(dat,"%s\n","kristijan");

if(fclose(dat)==EOF)
printf ( "Nije moguce zatvoriti datoteku\n" );
else
fclose(dat);

return 0;
}

Pokretacki fajl sam smjestio u public_html folder zajedno gdje mi se nalazi i PHP fajl.
PHP fajl:
<?php
exec("programc");
?>

Pokusavao sam jos svasta ali nista nije islo.Ni funkcija system ne pali.
Imali neko ideju kako ovo rijesti.Koristim Linux OS.
Hvala unaprijed.

[ dr ZiDoo @ 13.10.2004. 23:42 ] @
Porovjeri podesavanja u php.ini.
Pokretanje programa je relativni problem glede podesavanja pa zato dosta, skoro svi javni hostinzi, ne dozvoljavaju pokretanje programa. Takodje provjeri permisije programa koji pokusavas pokrenuti jel ti se apache vjerovatno pokrece kao nobody
[ dinke @ 13.10.2004. 23:48 ] @
Kao prvo ovo:

gcc programc.c -o programc.c

će ti kreirati izvršni fajl programc.c (tačnije prepisaće source fajl programc.c sa kompajliranim binarnim fajlom). Verovatno si želeo ustvari ovo:

gcc programc.c -o programc

Citat:
EXeX
Pokretacki fajl sam smjestio u public_html folder zajedno gdje mi se nalazi i PHP fajl.
PHP fajl:
<?php
exec("programc");
?>

Pokusavao sam jos svasta ali nista nije islo.Ni funkcija system ne pali.
Imali neko ideju kako ovo rijesti.Koristim Linux OS.


Pa, prvo proveri da li ti fajl programc uopšte postoji. Ako si ga kreirao onom gcc k-dom koju si naveo, onda ne postoji :)

Dalje, exec f-ja izvrsava externi program i ne štampa ništa (vraća samo poslednju linuju outputa k-de).

Pogledaj http://www.php.net/exec za više infomacija.
[ EXeX @ 14.10.2004. 11:41 ] @
Ma ja sam ono gore pogresno napisao sto se tice gcc-a.
Kompajliranje sam na komjuteru izveo dobro.
Dakle gcc programc.c -o programc ,kao sto si i ti naveo samo sam pogresno
napisao u postu.
[ EXeX @ 14.10.2004. 11:44 ] @
Citat:
dr ZiDoo: Porovjeri podesavanja u php.ini.
Pokretanje programa je relativni problem glede podesavanja pa zato dosta, skoro svi javni hostinzi, ne dozvoljavaju pokretanje programa. Takodje provjeri permisije programa koji pokusavas pokrenuti jel ti se apache vjerovatno pokrece kao nobody

Neradi se o javnom hostingu,radim na lokalnom racunalu gdje mi je instaliran apache i php.
Koje bi opcije trebao podesiti u php.ini?
To u vezi nobody,to je kao korisnik koji je u stvari udaljeni administrator,je li to to.
Da li bi u vezi toga trebai ista poduzimati na lokalnom racunalu?
Hvala.
[ EXeX @ 14.10.2004. 12:01 ] @
Rijesio problem.
Problem je bio sto mi folder public_html zasticen od pisanja.
Te trebao sam upisati exec("./programc") a ne exec("programc").

Pozdrav.