Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

skrypt PHP uruchamiany z C++

4 views
Skip to first unread message

Jivanmukta

unread,
Apr 29, 2022, 12:55:16 AM4/29/22
to
Skrypt PHP uruchomiony w wiersza poleceń Linuxa zwraca mi inne wyniki
niż ten sam skrypt uruchomiony z tymi samymi danymi wejściowymi z C++,
funkcja popen. Nie używam w skrypcie liczb psudolosowych ani dostępu do
sieci.
Jak to wyłumaczyć?
Skrypt PHP przetwarza dane wejściowe z pliku tekstowego i wysyła (przez
echo) przetworzony tekst - dopisuje pewne napisy do tekstu.
Oto jak uruchamiam go z C++:
array<char, 128> buffer;
string result = ""; // cmd's stdout
unique_ptr<FILE, decltype(&pclose)> pipe(popen(cmdstr.c_str(),
"r"), pclose);
if (!pipe) {
throw runtime_error("popen() failed");
}
while (fgets(buffer.data(), buffer.size(), pipe.get()) != nullptr) {
result += buffer.data();
}

Tomek

unread,
Apr 29, 2022, 3:04:05 AM4/29/22
to
W dniu 29.04.2022 o 06:54, Jivanmukta pisze:
Inne środowisko, zmienne itp?

Może w C++ nie wywołuj bezpośrednio PHP tylko ten skrypt obuduj może
jeszcze skryptem shelowym.

Jivanmukta

unread,
Apr 29, 2022, 4:00:39 AM4/29/22
to
W dniu 29.04.2022 o 09:04, Tomek pisze:
> W dniu 29.04.2022 o 06:54, Jivanmukta pisze:
>> Skrypt PHP uruchomiony w wiersza poleceń Linuxa zwraca mi inne wyniki
>> niż ten sam skrypt uruchomiony z tymi samymi danymi wejściowymi z C++,
>> funkcja popen. Nie używam w skrypcie liczb psudolosowych ani dostępu
>> do sieci.
>> Jak to wyłumaczyć?
>> Skrypt PHP przetwarza dane wejściowe z pliku tekstowego i wysyła
>> (przez echo) przetworzony tekst - dopisuje pewne napisy do tekstu.
>> Oto jak uruchamiam go z C++:
>>      array<char, 128> buffer;
>>      string result = ""; // cmd's stdout
>>      unique_ptr<FILE, decltype(&pclose)> pipe(popen(cmdstr.c_str(),
>> "r"), pclose);
>>      if (!pipe) {
>>          throw runtime_error("popen() failed");
>>      }
>>      while (fgets(buffer.data(), buffer.size(), pipe.get()) != nullptr) {
>>          result += buffer.data();
>>      }
>
> Inne środowisko, zmienne itp?
nie
>
> Może w C++ nie wywołuj bezpośrednio PHP tylko ten skrypt obuduj może
> jeszcze skryptem shelowym.
>
spróbuję

Jivanmukta

unread,
Apr 29, 2022, 4:10:24 AM4/29/22
to
Czy istnieje możliwość debugowania takiego skryptu podczas uruchomienia
z C++? Nie bardzo to sobie wyobrażam, ale zapytać można.

Jivanmukta

unread,
Apr 29, 2022, 6:27:55 AM4/29/22
to
W dniu 29.04.2022 o 10:10, Jivanmukta pisze:
> Czy istnieje możliwość debugowania takiego skryptu podczas uruchomienia
> z C++? Nie bardzo to sobie wyobrażam, ale zapytać można.
W sumie mógłbym zapisywać teksty wykonywanych instrukcji PHP do swojego
loga.

Jivanmukta

unread,
Apr 29, 2022, 6:48:38 AM4/29/22
to
W dniu 29.04.2022 o 12:27, Jivanmukta pisze:
Znalazłem https://github.com/Qihoo360/phptrace

rad...@konto.pl

unread,
May 4, 2022, 9:27:36 AM5/4/22
to
Fri, 29 Apr 2022 06:54:57 +0200, w <t4fr3h$v89d$1...@portraits.wsisiz.edu.pl>,
Jivanmukta <jivan...@poczta.onet.pl> napisał(-a):

> Skrypt PHP uruchomiony w wiersza poleceń Linuxa zwraca mi inne wyniki
> niż ten sam skrypt uruchomiony z tymi samymi danymi wejściowymi z C++,
> funkcja popen. Nie używam w skrypcie liczb psudolosowych ani dostępu do

A jaka jest różnica w wynikach?

Lemat

unread,
May 4, 2022, 1:43:42 PM5/4/22
to
W dniu 29.04.2022 o 10:00, Jivanmukta pisze:
ależ tak! LANG=C

--
Pozdrawiam
Lemat
0 new messages