66 lines
1.3 KiB
Markdown
66 lines
1.3 KiB
Markdown
# BinaryConverter Native fuer Linux
|
|
|
|
Diese Variante ist eine native C++17-Implementierung fuer Linux, getestet fuer Arch Linux. Sie ist formatkompatibel zur vorhandenen C#/.NET-Framework-Version: Encode-Dateien koennen zwischen Windows und Linux gegenseitig verarbeitet werden.
|
|
|
|
## Voraussetzungen
|
|
|
|
Arch Linux:
|
|
|
|
```bash
|
|
sudo pacman -S --needed base-devel openssl pkgconf
|
|
```
|
|
|
|
## Build
|
|
|
|
```bash
|
|
cd native
|
|
make
|
|
```
|
|
|
|
Die Binary liegt danach hier:
|
|
|
|
```text
|
|
native/build/binaryconverter
|
|
```
|
|
|
|
Optional generischere Binary ohne CPU-spezifische Optimierung:
|
|
|
|
```bash
|
|
make clean
|
|
make CXXFLAGS="-O3 -DNDEBUG"
|
|
```
|
|
|
|
## Nutzung
|
|
|
|
Encode:
|
|
|
|
```bash
|
|
./build/binaryconverter -Encode input.bin -Output transfer.txt
|
|
```
|
|
|
|
Decode:
|
|
|
|
```bash
|
|
./build/binaryconverter -Decode transfer.txt output.bin
|
|
```
|
|
|
|
Mit Logfile:
|
|
|
|
```bash
|
|
./build/binaryconverter -Encode input.bin -Output transfer.txt -Log binaryconverter.log
|
|
```
|
|
|
|
Vorhandene Ausgabedatei ueberschreiben:
|
|
|
|
```bash
|
|
./build/binaryconverter -Decode transfer.txt output.bin -Force
|
|
```
|
|
|
|
## Verhalten
|
|
|
|
- Streaming-Verarbeitung ohne komplette Dateien in den RAM zu laden
|
|
- Base64-Zeilen mit 76 Zeichen
|
|
- temporaere Ausgabedatei im Zielverzeichnis und atomarer Rename nach Erfolg
|
|
- Decode prueft `SourceLength` und `SHA256`, wenn die Metadaten vorhanden sind
|
|
- Exitcodes wie die C#-Version: `0` Erfolg, `1` Laufzeit-/Datenfehler, `2` Argumentfehler
|