On 1/2/21 4:58 PM, Paul Procacci wrote: > Hey Gents, > > Hopefully a simple question that I could not find the answer to. > > Given the following: > > class PROCESSENTRY32 is repr('CStruct') { > has int32 $.dwSize; > has int32 $.cntUsage; > has int32 $.th32ProcessID; > has Pointer $.th32DefaultHeapID; > has int32 $.th32ModuleID; > has int32 $.cntThreads; > has int32 $.th32ParentProcessID; > has long $.pcPriClassBase; > has int32 $.dwFlags; > HAS Str @.szExeFile[260] is CArray;# MAX_PATH on windows is 260 Did you mean to capitalize the HAS? > }; > > > ... is there is a raku method that gives me the size of this data structure? > > In C for example one would use sizeof() to provide the size. In raku I > could not find the documentation that would provide this information. > > Thanks, > Paul Procacci Hi Paul, Not that I know of. Raku has a lot of things in the background of its structures that C does not. C does not have OOP (object orientated programming) but does have "struct", which is close enough. What you are trying to do is match the C structure of the system call with Raku's OOP "class". In Raku, "class" is the definition of a structure and not the structure itself -- very much like C's "struct". You don't get an actual structure until you declare one from the class. For example: my $x = PROCESSENTRY32.new; And it is going to be a lot bigger behind the scenes that just adding up the bits. You really do not need to know the behind the scene details anyway. Raku strives to remove the need for the programmer to have to know these kind of details, unlike C. What system call are you trying to run? I have an example of how to read Windows Time that also uses OOP (class, object, and method). Let me know if you want it -TThread Previous | Thread Next