Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Il primo Micro RGB di Samsung per il salotto è il 65 pollici da 2.749 euro. Sul banco di misura abbiamo rilevato 2.000 nit di picco, nero assoluto con il local dimming e il 91,4% del BT.2020, il colore più ampio che abbiamo misurato su un LCD
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
Apple ha rinnovato iPhone 18 Pro soprattutto dentro: chip A20 Pro a 2 nm con memoria affiancata al SoC, camera di vapore tre volte più ampia, Dynamic Island più piccola del 25% grazie a Face ID sotto il display e fotocamera principale con diaframma variabile da f/1.48 a f/4. Lo abbiamo misurato al colorimetro e nei benchmark, usato con iOS 27 e messo alla prova in fotografia tra laghi, borghi e interni poco illuminati
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34
A Londra, per il trentennale dei Toughbook, Panasonic ha presentato il tablet G3 e il 2-in-1 34. Con Jon Tucker, a capo dell'ingegneria europea, abbiamo parlato di ciò che non si vede: batterie, antenne, porte seriali e accorgimenti nati sul campo
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 06-03-2007, 09:44   #1
deggial
Senior Member
 
L'Avatar di deggial
 
Iscritto dal: Mar 2003
Città: tra Borgo Ticino e Milano
Messaggi: 6050
[PHP] [C] Problemi di "comunicazione" tra i due linguaggi

Ciao a tutti, ho un problema che non so bene identificare, forse ha a che fare con la funzione system di PHP.

Il riassunto del discorso è questo: ho un programma fatto in C, se lo eseguo manualmente da prompt funziona bene, se lo richiamo tramite funzione system di PHP funziona male.
Vediamo in dettaglio:

Programma C (compilato con mingw):
Prende un file binario in formato strano, e ne estrae delle informazioni. Il risultato è un file di testo tipo questo:
Codice:
2007-02-11,09:17:22,0,1,7,50,280,42,39,0
2007-02-11,09:17:21,0,1,7,49,273,4022,37,0
2007-02-11,09:16:40,0,1,9,87,672,666,162,0
2007-02-11,09:16:33,0,1,9,79,714,65535,157,0
Particolare importanza ha la data, come vi spiegherò dopo.

Se lo lancio da prompt di dos funziona bene, se creo un .bat e lancio il bat funziona bene nello stesso modo.
Il problema si ha se provo a lanciarlo da PHP (PHP 5.2.0, Apache 2.2.3).

Lo lancio sia in questo modo:
Codice:
$sis1= system ("C:\\EXE\\estrai_dati.exe file_da_estrarre");

// file_da_estrarre è appunto il file binario da cui estrarre le info
che in questo modo:
Codice:
$sis1= system ("C:\\EXE\\estrai.bat");
con i file estrai.bat che altro non è che
Codice:
C:\EXE\estrai_dati.exe file_da_estrarre
In entrambi i casi il risultato è il seguente:
Codice:
2007-02-11",09:17:22,0,1,7,50,280,42,39,0
2007-02-11",09:17:21,0,1,7,49,273,4022,37,0
2007-02-11",09:16:40,0,1,9,87,672,666,162,0
2007-02-11",09:16:33,0,1,9,79,714,65535,157,0
Notate il doppio apice che segue la data.

Per completezza, vi posso dire il programma C non estrae la data dal contenuto del file, ma dal suo nome.
In realtà il nome del file_da_estrarre è una sequenza di 10 cifre, che identificano un timestamp unix (cioè il numero di secondi passato dalla mezzanotte del 1 gennaio 1970).
Ad esempio, il file si può chiamare 1171181844, che corrisponde al 2007-11-02 alle 09:17:24.
Io da lì estraggo anno mese e giorno sotto forma di interi (con una *gmtime), converto in char (con una itoa), aggiungo uno "0" davanti ai mesi e giorni con una sola cifra e formo la stringa AAAA-MM-GG (perchè mi serve così).

Come detto, finchè lo lancio direttamente funziona, se lo lancio tramite php non funziona.

Qualcuno ha idea di cosa può essere?

Grazie a tutti, e scusate se mi sono dilungato, ma spero almeno di essere stato chiaro.
__________________
firma in progress
deggial è offline   Rispondi citando il messaggio o parte di esso
Old 06-03-2007, 10:35   #2
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da deggial Guarda i messaggi
Qualcuno ha idea di cosa può essere?

Grazie a tutti, e scusate se mi sono dilungato, ma spero almeno di essere stato chiaro.
Sì, sei stato abbastanza chiaro. L'unica cosa che non ho capito è: il programma in C mette le informazioni estratte su un file o le manda sullo standard-output?? È strano comunque quel apice doppio ...

Come suggerimento: potresti usare strftime per formattare la parte data-ora.

Codice:
strftime (buf, sizeof (buf), "%Y-%m-%d,%H:%M:%S", gmtime (&t));
Con questa stringa di formato ottieni nel buffer appunto una stringa del tipo:
2007-03-06,10:31:36
__________________
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 06-03-2007, 10:47   #3
deggial
Senior Member
 
L'Avatar di deggial
 
Iscritto dal: Mar 2003
Città: tra Borgo Ticino e Milano
Messaggi: 6050
Quote:
Originariamente inviato da andbin Guarda i messaggi
Sì, sei stato abbastanza chiaro. L'unica cosa che non ho capito è: il programma in C mette le informazioni estratte su un file o le manda sullo standard-output?? È strano comunque quel apice doppio ...

Come suggerimento: potresti usare strftime per formattare la parte data-ora.

Codice:
strftime (buf, sizeof (buf), "%Y-%m-%d,%H:%M:%S", gmtime (&t));
Con questa stringa di formato ottieni nel buffer appunto una stringa del tipo:
2007-03-06,10:31:36
per lo strftime, non ci avevo fatto caso, in effetti mi evita di formattare a mano.
il programma C scrive su un file di testo.

cmq un attimo ho provato a stampare la data carattere per carattere anzichè come stringa, e ho risolto il problema.
Quindi immagino che il problema sia nella gestione della memoria del mio prog C, ora lo riguardo bene...
cmq la soluzione trovata è poco elegante e non mi aiuta a capire il problema, quindi accetto volentieri altri aiuti e consigli...
__________________
firma in progress
deggial è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura Samsung Micro RGB R95H, il primo LCD a LED rossi...
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre iPhone 18 Pro: la recensione del miglior iPhone ...
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34 Panasonic, 30 anni di Toughbook: la "Bibbia...
realme C100x, lo smartphone economico con la batteria da 7500 mAh. La recensione realme C100x, lo smartphone economico con la bat...
Star Wars Zero Company è l'erede di XCOM 2 Star Wars Zero Company è l'erede di XCOM ...
300 milioni di dollari di server NVIDIA ...
'Io sono Giorgia': la Premier Meloni reg...
Galaxy S27 Ultra con Exynos 2700, Samsun...
Altman: tra OpenAI e Anthropic sulla sic...
Tesla Robotaxi, la notte è ancora...
Huawei e Qualcomm firmano un accordo sui...
Benessere sul posto di lavoro: la situaz...
La corsa nei computer quantistici si spo...
Dopo 6 anni non hanno trovato niente: si...
Nuovo accordo tra Qualcomm e Huawei sui ...
Battlefield al cinema: Sony in trattativ...
Siri AI su iPhone e iPad si farà attende...
Core Ultra 4000 anche sui notebook, ma n...
Kolibri-1: nuovo LLM a pesi aperti con 7...
tado° in offerta Prime: 3 valvole te...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 19:18.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v