मैं महत्वाकांक्षी रूप से एक सी + + कोड का अनुवाद करने की कोशिश कर रहा हूं, जो कई कारणों से है।
यह कोड मेरे उप-क्षेत्र के लिए विशिष्ट फ़ाइल प्रकार को पढ़ता है और उसमें हेरफेर करता है जो बाइनरी में पूरी तरह से लिखा और संरचित है। मेरा पहला बाइनरी से संबंधित कार्य हेडर के पहले 988 बाइट्स की नकल करना है, बिल्कुल-जैसा है, और उन्हें एक आउटपुट फाइल में डाल दिया है कि मैं लेखन को जारी रख सकता हूं क्योंकि मैं बाकी जानकारी उत्पन्न करता हूं।
मुझे पूरा यकीन है कि मेरा वर्तमान समाधान काम नहीं कर रहा है, और वास्तविक रूप से मैंने इसे निर्धारित करने का एक अच्छा तरीका नहीं निकाला है। इसलिए भले ही यह वास्तव में सही ढंग से लिखा गया हो, फिर भी मुझे यह जानने की ज़रूरत है कि मैं यह कैसे सुनिश्चित करूँगा!
यह मैं अभी कर रहा हूँ:
hdr_988=`head -c 988 ${inputFile}`
echo -n "${hdr_988}" > ${output_hdr}
headInput=`head -c 988 ${inputTrack} | hexdump`
headOutput=`head -c 988 ${output_hdr} | hexdump`
if [ "${headInput}" != "${headOutput}" ]; then echo "output header was not written properly. exiting. please troubleshoot."; exit 1; fi
अगर मैं फ़ाइल के इस हिस्से की जांच करने के लिए हेक्सडंप / xxd का उपयोग करता हूं, हालांकि मैं इसे ज्यादातर नहीं पढ़ सकता हूं, तो कुछ गलत लगता है। और जो कोड मैंने तुलना के लिए लिखा है वह केवल मुझे बताता है कि क्या दो तार समान हैं, न कि अगर वे जिस तरह से मुझे चाहते हैं, उनकी नकल की जाती है।
क्या बैश में ऐसा करने का एक बेहतर तरीका है? क्या मैं फ़ाइल बाइनरी कॉपी करने के लिए मूल बाइनरी में बाइनरी बाइट्स को कॉपी / रीड कर सकता हूं? (और आदर्श रूप में अच्छी तरह से चर के रूप में स्टोर करने के लिए)।
dd
अलग-अलग बाइट (अपनी स्थापना के कॉपी करने के लिएcount
करने के लिए1
)। मैं उन्हें संग्रहीत करने के बारे में निश्चित नहीं हूँ, हालाँकि।