मैं एक साधारण सी कार्यक्रम "./my_program"
कमांड लाइन से सी-प्रोग्राम का पूरा रिटर्न वैल्यू पाने के लिए मुझे क्या करना चाहिए?
#include <stdio.h>
int main (int argc , char **argv) {
unsigned int return_result = 0x474;
printf("return_result = %d = 0x%x \n",return_result,return_result);
return return_result;
}
नतीजतन, इस कार्यक्रम के निशान है:
return_result = 1140 = 0x474
मैं bash स्क्रिप्ट के भीतर सी कार्यक्रम का एक वापसी मान प्राप्त करना चाहते हैं। इस लिंक के अनुसार Anyway to get return value of c program from command line? मुझे यह चर $ से प्राप्त करना चाहिए?
लेकिन जब मैं इस तरह के आदेशों परिणाम का शुभारंभ:
./my_program
echo $?
मैं
116
प्राप्त यह स्पष्ट रूप से है, कि 116 = 0x74 (सबसे कम बाइट)। लेकिन मैं पूरी तरह से हस्ताक्षरित int मान प्राप्त करना चाहता हूं। क्या गलत है? कमांड लाइन से सी-प्रोग्राम का पूरा रिटर्न वैल्यू पाने के लिए मुझे क्या करना चाहिए? यह केवल "हस्ताक्षरित int" प्रकार के बारे में नहीं है। यदि मैंने कुछ जटिल प्रकार बनाया है, उदाहरण के लिए, - संरचना में मुझे क्या करना चाहिए।
मैंने कोशिश की यह:
return ((unsigned int) return_result_section_size);
यह काम नहीं करता।
शायद क्योंकि उन संख्याओं के लिए 'int' का उपयोग करना आम है जिन्हें किसी भी चीज की आवश्यकता नहीं है। इसी कारण से यह 'int argc' है और' हस्ताक्षरित int argc' – ThiefMaster
नहीं है क्योंकि यूनिक्स एक बाइट में निकास कोड को प्रतिबंधित करता है इसका मतलब यह नहीं है कि मानक को अन्य प्लेटफ़ॉर्म पर समान प्रतिबंध लागू करना चाहिए। – jamesdlin
ठीक है, उत्तर के लिए धन्यवाद! –