शेल से C प्रोग्राम नहीं चला सकते


1

मैंने अपना पहला प्रोग्राम प्रोग्राम किया है, एक्सकोड और टेक्स्टवंगलर के साथ त्रिकोण वर्ग की गणना करने वाला एक विशिष्ट, और फिर मैं इसे चलाना चाहता हूं, लेकिन मैं इसे नहीं कर सकता।

जब मैं इसे चलाने की कोशिश करता हूं, तो टर्मिनल कहता है आदेश नहीं मिला हर बार…

MacBook-Pro:~ Gaspar$ /Users/Gaspar/Desktop/prova.c 
-bash: /Users/Gaspar/Desktop/prova.c: Permission denied
MacBook-Pro:~ Gaspar$ sudo /Users/Gaspar/Desktop/prova.c 
sudo: /Users/Gaspar/Desktop/prova.c: command not found

मैं इसे कैसे कॉन्फ़िगर कर सकता हूं ताकि मुझे हर समय निर्देशिका में प्रवेश न करना पड़े?


क्या आपने कार्यक्रम संकलित किया है?
Lucas Kauffman

@LucasKauffman हाँ, gcc और Xcode के साथ।
gasbi

2
आपको संकलित बाइनरी निष्पादन योग्य (शायद) चलाने की आवश्यकता है prova ), आपका स्रोत कोड नहीं (निश्चित रूप से) नहीं prova.c, जो सिर्फ सादा पाठ है और स्क्रिप्ट / बाइनरी नहीं है)।
Breakthrough

जवाबों:


2
gcc /Users/Gaspar/Desktop/prova.c -o Users/Gaspar/Desktop/prova
/Users/Gaspar/Desktop/prova

सुनिश्चित करें कि यह निष्पादन योग्य ध्वज सेट है (यह डिफ़ॉल्ट रूप से होना चाहिए) यदि यह सेट नहीं है:

ls -l Users/Gaspar/Desktop/prova

chmod +x Users/Gaspar/Desktop/prova

1

फ़ाइल prova.c एक स्रोत फ़ाइल है। यह सादा पाठ है और इसमें आपके प्रोग्राम का स्रोत कोड है। आपके द्वारा संकलित करने के बाद, एक नई फ़ाइल बनाई जाएगी, शायद prova (बिना विस्तार के)। यह निष्पादन योग्य है - एक बाइनरी फ़ाइल - जिसे आप अपने टर्मिनल से चला सकते हैं।

पूरे पथ को टाइप किए बिना, आपके शेल में कई निष्पादक हर जगह उपलब्ध हैं। उदाहरण के लिए, sudo, वास्तव में है /usr/bin/sudo, लेकिन आपके खोल में खोज करने के लिए पता चल जाएगा /usr/bin। हालाँकि, आपके स्वयं के प्रोग्राम शेल द्वारा स्वचालित रूप से नहीं पाए जाते हैं। आपको यह बताना होगा कि यह कहाँ है।

बस प्रकार:

/Users/Gaspar/Desktop/prova

यदि आप पूर्ण पथ नहीं लिखना चाहते हैं, तो अपनी कार्यशील निर्देशिका को पहले बदलें

cd /Users/Gaspar/Desktop/

अब आप अपने कार्यक्रम को इस तरह से कह सकते हैं, जहां . वर्तमान निर्देशिका को निर्दिष्ट करता है। आपको शामिल करना होगा ./ चूंकि आपकी वर्तमान निर्देशिका सामान्य रूप से उन रास्तों की सूची में नहीं है, जहां आपका शेल निष्पादन योग्य कार्यक्रमों की खोज करता है।

./prova

यदि बाइनरी के पास अधिकार सेट निष्पादित नहीं होता है तो यह काम नहीं कर सकता है। यह एक ध्वज है जो फ़ाइल को टर्मिनल से चलाने की अनुमति देता है। अगर आपको ए अनुमति नहीं मिली त्रुटि, निष्पादित अनुमति जोड़ें:

chmod +x prova

अब, फ़ाइल को फिर से चलाने का प्रयास करें ./prova

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.