[ocaml-ctypes] C-array of fixed size,	#defines and C11 anonymous unions
    Markus Weißmann 
    markus.weissmann at in.tum.de
       
    Wed Feb 12 07:59:13 GMT 2014
    
    
  
Hello ctypes list,
1.) I was wondering how fixed-size C-arrays should be handled in 
ctypes;
there exist several APIs that use a fixed-size array as part of a 
struct, e.g. ifreq (used to configure network interfaces via ioctl(2) on 
linux)
struct ifreq {
   union {
     char ifrn_name[16];
   } ifr_ifrn;
...
How do I handle that in ctypes?
2.) Is there a "clever" way of handling C-#defines? One obvious 
possibility is to look them up manually and then hope that e.g. BUFSIZ 
is the same on all machines used;
another would be to introduce a stub.c file just to handle the 
#defines... defeating somehow the purpose of ctypes.
Something that would work, too, is to write a generator in C that 
creates a defines.ml for me (e.g. "printf("let bufsiz = %d\n", BUFSIZ))
Has someone found the holy grail (tm) for this problem?
3.) The C11 standard allows for unnamed unions -- not a concrete 
problem right now, but is there a more elegant way than to introduce a 
new name for the union in my ocaml/ctypes code?
typedef struct {
   union {
     float f;
     int i;
   };
} some_t;
...
some_t x;
x.f = 4.5;
printf("%d", x.i);
Best regards,
-Markus
-- 
Markus Weißmann, M.Sc.
Technische Universität München
Institut für Informatik
Boltzmannstr. 3
D-85748 Garching
Germany
http://wwwknoll.in.tum.de/
    
    
More information about the Ctypes
mailing list