Re: string in structure and fread()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2011/12/25 Juan Ramírez:
> Hi,
>
> If you want to write and read a raw structure to a file, using c++
> objects is NOT recommended at all! At least not using fread/fwrite

What do you mean by "c++ objects"?

A POD struct is a "c++ object"

Assuming you mean non-POD class types with non-trivial constructors
and/or non-POD members, I strongly disagree, there is nothing wrong
with doing IO with suh types, you just need to write the IO code
correctly, which is always true.


> Given that fields have fixed length, a good solution could be using a
> raw char array, something like this:
>
>     #define FIELD_LENGTH   101
>
>     struct book {
>         char name[FIELD_LENGTH];
>         char author[FIELD_LENGTH];
>         char publisher[FIELD_LENGTH];
>         char translator[FIELD_LENGTH];
>         bool translation;
>         bool stock;
>     };

That solution is useless if the strings can be arbitrarily long, a
better solution is to store the strings in the file as
null-terminated, or length-prefixed, and in either of those cases
managing the strings in the program will be simpler with std::string.



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux