?
Es ist in diesem fall besser ein 10Mb Programm zu haben als ein 100k Programm + eine 10 Mb Datei!
Ich glaube eben, daß das ganz egal ist. Ausliefern wirst du das Ding sowieso als tar.gz oder dergleichen.
Das Programm soll auf jedem beliebigem Rechner laufen ohne daß jedes mal diese Datei hinterlegt werden muss.
Binärkompatibilität unter den Linux-Varianten ist so eine Sache. Dafür kann man damit rechnen, daß sie alle einen C-Compiler haben. Nach meiner Erfahrung ist es besser, gleich nur den Quellcode auszuliefern; sonst müßtest du am Ende noch die richtige Version der C-Bibliotheken mitliefern, weil wohl kaum alle Rechner die gleiche verwenden.
save_lib() öffnet die binäre Datei, zählt die Zeichen, legt ein Array mit dieser größe an und füllt es mit den Zeichen aus der Datei.
Also doch das Gegenteil von "save" .
Vermutlich wird der Plan aber so nicht aufgehen, oder?
Doch, doch, das kann man machen. Zumindest die Sache mit den Bibliotheken kann man in den Griff kriegen, indem man statisch dazulinkt. Das bläst das Binary aber nur noch mehr auf. Bleiben als Problem immer noch andere Architekuren/Betriebsysteme. Es hat schon seine Gründe, daß man gerne die Quelltexte ausliefert, wenn das möglich ist. Und dann könnte das Makefile sich um alles kümmern.