Torna indietro   Hardware Upgrade Forum > Software > Programmazione

HP Imagine 2026: abbiamo visto HP IQ all’opera, ecco cosa può (e non può) fare
HP Imagine 2026: abbiamo visto HP IQ all’opera, ecco cosa può (e non può) fare
A New York HP ha messo al centro della scena HP IQ, la piattaforma di IA locale da 20 miliardi di parametri. L’abbiamo vista in funzione: è uno strumento che funziona, pensato per un target specifico, con vantaggi reali e limiti altrettanto evidenti
PNY RTX 5080 Slim OC, sembra una Founders Edition ma non lo è
PNY RTX 5080 Slim OC, sembra una Founders Edition ma non lo è
La PNY GeForce RTX 5080 Slim OC si distingue nel panorama delle GPU di fascia alta per il design compatto a due slot, ispirato alla NVIDIA GeForce RTX 5080 Founders Edition. In questo test analizziamo comportamento termico e prestazioni in gioco, valutando se il formato ridotto comprometta o meno l'esperienza complessiva rispetto alle soluzioni più ingombranti presenti sul mercato.
Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei
Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei
HUAWEI WiFi Mesh X3 Pro Suite è probabilmente il router mesh più fotogenico che si possa acquistare oggi in Italia, ma dietro il guscio in acrilico trasparente e le luci LED dinamiche c'è una macchina tecnica costruita attorno allo standard Wi-Fi 7, con velocità teoriche Dual-Band fino a 3,6 Gbps e una copertura fino a 120 m² una volta abbinato il router principale all'extender incluso nel kit
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 09-11-2003, 08:54   #1
Luc@s
Senior Member
 
L'Avatar di Luc@s
 
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
[c]Strutture

Codice:
 
#ifndef PAK_H
#define PAK_H

#include "include.h"

typedef char bool;

typedef struct
{
    char content[PAK_N]; /* the content of pak */
    bool flag[FLAG_N]; /* the pak flag */
    char sign[10]; /* the verification signature */

} Pak;

/* prototype */ 
void setSign(Pak * ptr, const char sign[10]);
bool cntSign(Pak * ptr);
void setContent(Pak * ptr, char content[PAK_N]);
int send(Pak * ptr, int mode);
void rec(Pak * ptr, char buf[PAK_N]);
void log(char * msg);
void controlChecksum(char * ck, bool * control);

/* implementation */ 
void setSign(Pak * ptr, const char sign[10])
{
    #ifdef DEBUG
        assert(ptr != NULL);
    #endif
    if(ptr == NULL)
        return;   
    if((strlen(sign) > 10) || (strlen(sign) < 10)) 
        return;
    strcpy(ptr->sign, sign);   
}

bool cntSign(Pak * ptr)
{
    #ifdef DEBUG
        assert(ptr != NULL);
    #endif  
        if(ptr == NULL)
        return FALSE; 
}


void setContent(Pak * ptr, char content[PAK_N])
{
    #ifdef DEBUG
        assert(ptr != NULL);
    #endif  
    if(ptr == NULL)
        return; 
    short i;
    for(i = 0; i<PAK_N; i++)
    {
        ptr->content[i] = content[i];
    }  
}

int send(Pak * ptr, int mode)
{
    #ifdef DEBUG
        assert(ptr != NULL);
    #endif 
    if(ptr == NULL)
        return -1;  
    if(strlen(ptr->content) < PAK_N)
        return -1;
    setContent(ptr, ptr->content);
    ptr->flag[0] = TRUE; /* the dimension OK flag */
    switch(mode)
    {
        case SERVER:
                ptr->flag[1] = SERVER; /* the pak type flag */
                break;
        case CLIENT:
                ptr->flag[1] = CLIENT;
                break;  
        case REQUEST:
                ptr->flag[1] = REQUEST;
                break; 
        default:
                ptr->flag[1] = ERROR;
                break;                               
    } 
    if((ptr->flag[0] == TRUE) && (ptr->flag[1] != ERROR))
    {   
        setSign((Pak *) ptr->sign, CHECK);
    }else{
        return -1;
    }
    /*
        send to serial port
    */
    return 0;
        
}

void rec(Pak * ptr, char buf[PAK_N])
{
    /*
        receive to serial port
    */   
    #ifdef DEBUG
        assert(ptr != NULL);
    #endif  
    if(ptr == NULL)
        return; 
    strcpy(buf, ptr->content);
}
/*
 * Log Format:
 * # DATE #
 * # FLAG #
 * # CONTENT #
 */
void log(char * msg)
{
    FILE * log = fopen("app.log", "a+");
    if(log == NULL)
        return; 
    fprintf(log, "#%s#\n", msg);
    fclose(log);
}

void controlChecksum(char * ck, bool * control)
{ 
    if(strcmp(ck, CHECK) == 0)
    {   
        control =  (bool *) 0;
    }else{   
        control =  (bool *) 1;
    }    
}

#endif
Se provo ad usare la funz send() mi restituisce -123343
Help me
__________________
Gnu/Linux User

Ultima modifica di Luc@s : 09-11-2003 alle 13:45.
Luc@s è offline   Rispondi citando il messaggio o parte di esso
Old 09-11-2003, 13:45   #2
Luc@s
Senior Member
 
L'Avatar di Luc@s
 
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
ap
__________________
Gnu/Linux User
Luc@s è offline   Rispondi citando il messaggio o parte di esso
Old 10-11-2003, 11:40   #3
Darkman
Senior Member
 
L'Avatar di Darkman
 
Iscritto dal: Nov 1999
Città: Messina
Messaggi: 4358
A me il tuo programma compilato da una lista di errori interminabili....
__________________
I can't remeber all the times I tried to tell myseft to hold on to these moments as they pass... A Long December...
Darkman è offline   Rispondi citando il messaggio o parte di esso
Old 10-11-2003, 12:19   #4
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Innanzitutto non usare gli include guard (#ifndef...#define...#endif) dentro codice c (il tuo listato mi sembra codice c, non un header). Poi, non usare nomi di funzioni di sistema per le tue funzioni (tipo send e log). Infine, la tua send restituisce solo 0 oppure -1, è impossibile che ritorni -123343.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 10-11-2003, 14:05   #5
Luc@s
Senior Member
 
L'Avatar di Luc@s
 
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
Quote:
Originariamente inviato da ilsensine
Innanzitutto non usare gli include guard (#ifndef...#define...#endif) dentro codice c (il tuo listato mi sembra codice c, non un header). Poi, non usare nomi di funzioni di sistema per le tue funzioni (tipo send e log). Infine, la tua send restituisce solo 0 oppure -1, è impossibile che ritorni -123343.
eppire lo fa
__________________
Gnu/Linux User
Luc@s è offline   Rispondi citando il messaggio o parte di esso
Old 10-11-2003, 14:42   #6
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Quote:
Originariamente inviato da Luc@s
eppire lo fa
Due possibili cause:
1) Buffer overflow da qualche parte
2) Chi chiama la send chiama effettivamente la send di sistema, non quella che hai scritto tu. Cambiagli nome per evitare conflitti.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 10-11-2003, 14:44   #7
Kleidemos
Bannato
 
L'Avatar di Kleidemos
 
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
Quote:
Originariamente inviato da ilsensine
Due possibili cause:
1) Buffer overflow da qualche parte
2) Chi chiama la send chiama effettivamente la send di sistema, non quella che hai scritto tu. Cambiagli nome per evitare conflitti.
direi la 2 perche sulla prima nn penso sia possibile(ho fatto molti controlli )
Kleidemos è offline   Rispondi citando il messaggio o parte di esso
Old 10-11-2003, 14:45   #8
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Quote:
Originariamente inviato da Kleidemos
direi la 2 perche sulla prima nn penso sia possibile(ho fatto molti controlli )
Luc@s o Kleidemos che dir si voglia, che ne diresti di usare un solo nick?
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 10-11-2003, 14:47   #9
Luc@s
Senior Member
 
L'Avatar di Luc@s
 
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
hai ragione!
Skusa
__________________
Gnu/Linux User
Luc@s è offline   Rispondi citando il messaggio o parte di esso
Old 10-11-2003, 14:55   #10
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Quote:
Originariamente inviato da Luc@s
hai ragione!
Skusa
Quale dei due vuoi mantenere?
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 10-11-2003, 15:03   #11
Luc@s
Senior Member
 
L'Avatar di Luc@s
 
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
Quote:
Originariamente inviato da ilsensine
Quale dei due vuoi mantenere?
Luc@s!
Cancellami l'altro
__________________
Gnu/Linux User
Luc@s è offline   Rispondi citando il messaggio o parte di esso
Old 10-11-2003, 15:09   #12
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Ok fuori uno
Hai altri nick o me li devo cercare da solo?
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 10-11-2003, 15:12   #13
Luc@s
Senior Member
 
L'Avatar di Luc@s
 
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
Quote:
Originariamente inviato da ilsensine
Ok fuori uno
Hai altri nick o me li devo cercare da solo?
Nessun altro, giuro
__________________
Gnu/Linux User
Luc@s è offline   Rispondi citando il messaggio o parte di esso
Old 10-11-2003, 15:16   #14
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Ok tornando al tuo problema: innanzitutto rimuovi i nomi di funzioni riservate (send e log) e guarda se cambia qualche cosa...
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 10-11-2003, 16:47   #15
Luc@s
Senior Member
 
L'Avatar di Luc@s
 
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
mi da lo stesso numero

Codice:
#include "include.h"

typedef char bool;

typedef struct
{
    char content[PAK_N]; /* the content of pak */
    bool flag[FLAG_N]; /* the pak flag */
    char sign[10]; /* the verification signature */

} Pak;

/* prototype */ 
void setSign(Pak * ptr, const char sign[10]);
bool cntSign(Pak * ptr);
void setContent(Pak * ptr, char content[PAK_N]);
int send_pak(Pak * ptr, short mode);
void rec_pak(Pak * ptr, char buf[PAK_N]);
void aplog(char * msg);
void controlChecksum(char * ck, bool * control);

/* implementation */ 
void setSign(Pak * ptr, const char sign[10])
{
    #ifdef DEBUG
        assert(ptr != NULL);
    #endif
    if(ptr == NULL)
        return;   
    if((strlen(sign) > 10) || (strlen(sign) < 10)) 
        return;
    strcpy(ptr->sign, sign);   
}

bool cntSign(Pak * ptr)
{
    #ifdef DEBUG
        assert(ptr != NULL);
    #endif  
        if(ptr == NULL)
        return FALSE; 
}


void setContent(Pak * ptr, char content[PAK_N])
{
    #ifdef DEBUG
        assert(ptr != NULL);
    #endif  
    if(ptr == NULL)
        return; 
    short i;
    for(i = 0; i<PAK_N; i++)
    {
        ptr->content[i] = content[i];
    }  
}

int send_pak(Pak * ptr, short mode)
{
    #ifdef DEBUG
        assert(ptr != NULL);
    #endif 
    if(ptr == NULL)
        return -1;  
    if(strlen(ptr->content)+1 < PAK_N)
        return -1;
    ptr->flag[0] = TRUE; /* the dimension OK flag */
    switch(mode)
    {
        case SERVER:
                ptr->flag[1] = SERVER; /* the pak type flag */
                break;
        case CLIENT:
                ptr->flag[1] = CLIENT;
                break;  
        case REQUEST:
                ptr->flag[1] = REQUEST;
                break; 
        default:
                ptr->flag[1] = ERROR;
                break;                               
    } 
    if((ptr->flag[0] == TRUE) && (ptr->flag[1] != ERROR))
    {   
        setSign((Pak *) ptr->sign, CHECK);
    }else{
        return -1;
    }
    /*
        send to serial port
    */
    return 0;
        
}

void rec_pak(Pak * ptr, char buf[PAK_N])
{
    /*
        receive to serial port
    */   
    #ifdef DEBUG
        assert(ptr != NULL);
    #endif  
    if(ptr == NULL)
        return; 
    strcpy(buf, ptr->content);
}
/*
 * Log Format:
 * # DATE #
 * # FLAG #
 * # CONTENT #
 */
void aplog(char * msg)
{
    FILE * log = fopen("app.log", "a+");
    if(log == NULL)
        return; 
    fprintf(log, "#%s#\n", msg);
    fclose(log);
}

void controlChecksum(char * ck, bool * control)
{ 
    if(strcmp(ck, CHECK) == 0)
    {   
        control =  (bool *) 0;
    }else{   
        control =  (bool *) 1;
    }    
}
Codice:
 
#include "include.h"
#include "pak.h"

extern soc_S;

int main()
{
  #ifdef DEBUG
    printf("Debug Mode CLIENT\n");  
  #endif 
    char sc;
    time_t ltime;
    do
    {
        Pak * p;
        strcpy(p->content, "c");
        int err = send_pak(p, CLIENT);
        puts("\nInsert 0 to exit\n");
        printf("Err: %d \n", &err);
        scanf("%d", &sc);
    }while(sc != 0);  
  return 0;
}
__________________
Gnu/Linux User
Luc@s è offline   Rispondi citando il messaggio o parte di esso
Old 10-11-2003, 19:13   #16
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Codice:
 printf("Err: %d \n", &err);
Non "&err", ma semplicemente "err"
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


HP Imagine 2026: abbiamo visto HP IQ all’opera, ecco cosa può (e non può) fare HP Imagine 2026: abbiamo visto HP IQ all’opera, ...
PNY RTX 5080 Slim OC, sembra una Founders Edition ma non lo è PNY RTX 5080 Slim OC, sembra una Founders Editio...
Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei Wi-Fi 7 con il design di una vetta innevata: ecc...
Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: Intel cerca il riscatto ma ci riesce in parte Core Ultra 7 270K Plus e Core Ultra 7 250K Plus:...
PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu PC Specialist Lafité 14 AI AMD: assemblat...
Comprare un PC sta diventando un lusso? ...
3 smartphone 5G economici in saldo: Moto...
Un robot che installa pannelli fotovolta...
Google sfida ChatGPT: arriva il tool uff...
LG OLED B5 vs G5 e TCL C6K: tre TV 4K ch...
YouTube testa una nuova funzione AI dest...
Gli USA avvisano l'Europa: basta multe a...
Un uomo paralizzato è tornato a g...
2 portatili tuttofare con 32GB di RAM, n...
Stranger Things non è finito! Ecc...
iPhone 18, il mistero sul destino della ...
Motorola lavora al nuovo Razr 70 Ultra: ...
Il programma di ridimensionamento di One...
L'industria statunitense non è co...
La NASA cambia strategia per le missioni...
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: 08:25.


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