Ben üniversite için kurs biraz yapıyorum ve ben tamamen şaşırmış değilim. Temelde ben şimdi herhangi bir. Php dosyası, php derleyici ve çıkışı ile çalıştırmak böylece bunu yapmak için var C. temel bir web sunucusu (soketi kullanır) yaptık.
Ben yaşıyorum sorun ben (ikincisi bizim öğretim üyesi tarafından tavsiye edildi)) sistemi () ve execlp (kullanarak denedim ve cant yerine terminalin sayfasında göstermek için nasıl bulmak olduğunu.
İşte şu anda var kodunu gösteren bir özü bulunuyor. Eğer ben işe almak için her türlü çalışıyorum gördüğünüz gibi ... tüm yorumlarınızı lütfen bağışlayın!
KOD:
if(strncmp(resource, ".php", 4)==1) {
//cout << "test";
int php;
int phppipefds[2], phppid;
char phpc;
pipe(phppipefds);
phppid = fork();
if(phppid == 0) { // child will read pipe
close(0); // close stdin
dup2(phppipefds[0],0); // read pipe on stdin
close(phppipefds[1]); // we dont need to write pipe
execlp("/Applications/MAMP/bin/php5/bin/php", "php", httppath, NULL);
cerr << "exec failed\n";
exit(1);
}
// parent, if we redirect stdout printf will send down pipe
close(1);
dup2(phppipefds[1],1); // write pipe on stdout
close(phppipefds[1]); // dont need 2 write descriptors
close(phppipefds[0]); // we dont need to read pipe
cout << "words \ngoing \ndown \npipe \nbeing \nsorted\n";
close(1); // must close pipe or sort will hang
wait(0);
//php = system("/Applications/MAMP/bin/php5/bin/php /Users/rickymills/webserver/pages/test.php");
//strcat(resp, );
//strcat(resp, php);
}
Ben bu şey işe almak için her türlü çalışıyorum nerede son birkaç satır vardır.
Her tarayıcı pencereleri dökülür asıl kısmı sadece yukarıdaki kodu aşağıdaki gibidir:
write(connsock, resp, rd);
exit(1);
}
Herkes tarayıcı penceresine bu nasıl alabilirim bir fikrin var mı? Ben en iyi yolu bir değişken içine php çıktı almak için olabilir, ve yazmak connsock önce 'solunum' ile birleştirmek sanırdım, bu doğru mu?
Zaman ayırdığınız için teşekkürler.