[Tutor] Get the structure values from a c file

Marefe Serentas marszydril at gmail.com
Tue Dec 18 05:25:22 CET 2012


On 12/18/2012 12:38 AM, tutor-request at python.org wrote:
> Re: Get the structure values from a c file
I apologize for some syntax errors in my c file. I would like to correct
my mistakes and append some lines in the c file to make it clearer.


----
#define max (3)
#define max_data_size (9600*2*8)

typedef unsigned char  u8;
typedef signed int u32;

int some_data[] =
{
	-288,   -153,     31,     24,    205,    110,     39,     88,
	-281,    145,     35,    266,     63,    -79,   -103,    -25,
	  53,    145,   -114,   -274,     46,     60,    220,    205
};

typedef struct A
{
     u32 a;
     u8 b;
}A;

typedef struct MainStruct
{
     A var1;
     u32 var2;
     u32 var3[max];
     u32 var4;
     u32 var5[max];
}MainStruct;

void generate()
{
     MainStruct myMain = {0};
     myMain.var1.a = 1;
     myMain.var1.b = 'a';
     myMain.var2 = 3;
     myMain.var3[0] = -3;
     myMain.var3[1] = 6;
     myMain.var3[2] = 18;

     (void)memcpy((void *)myMain.var4,
                  (void *)some_data,
                  sizeof(some_data));

     myMain.var5[0] = 1;
}

----


This is a work-problem. Given a c file as input, the customer wants me
to write a python script that will retrieve the values of myMain.
He wants those values converted to binary data and write it in a .bin
file. As a result, the size of the bin file is equal to the size of
myMain. The c file input content might change in the future like
different values assigned, added fields in the MainStruct, etc. Also I
am not permitted to change the c file.


About me, I'm a fresh graduate. I just started learning python a month
ago. I learned c in school, we had it for 2 years.


I'm using python 2.6. I'm running on Windows 7 64-bit OS.

What I did so far is parse the C source code.
But having a problem parsing the value of myMain.var4.





More information about the Tutor mailing list