में लिनक्स पर बीप सिस्टम बीपर का उपयोग करके एक विशिष्ट आवृत्ति और लंबाई (विभिन्न ध्वनि संकेतों के लिए) के साथ एक बीप ध्वनि उत्पन्न करना चाहता है (और केवल स्पीकर अगर बीपर उपलब्ध/सुलभ नहीं है)। मुझे पता है कि ioctl का उपयोग कर ऐसा करना संभव है, लेकिन इसके लिए रूट पहुंच की आवश्यकता है, जिसे मैं नहीं चाहता हूं।सी
मुझे पता है कि मैं सिर्फ "बीप" कमांड का उपयोग कर सकता हूं, लेकिन यह निर्भरता होगी, यदि संभव हो, तो इसका उपयोग नहीं किया जाना चाहिए (बिल्कुल बाह्य निर्भरता नहीं, केवल मूल लिनक्स पुस्तकालयों और सी)।
क्या मैं वर्तमान में निम्नलिखित कोड है (लेकिन यह सुपर उपयोगकर्ता विशेषाधिकार को चलाने के लिए की आवश्यकता है):
#include <stdlib.h>
#include <fcntl.h>
#include <linux/kd.h>
int main(int argc, char *argv[])
{
int fd = open("/dev/console", O_RDONLY);
if (fd == -1 || argc != 3) return -1;
return ioctl(fd, KDMKTONE, (atoi(argv[2])<<16)+(1193180/atoi(argv[1])));
}
अगर वहाँ यह करने के लिए कोई दूसरा रास्ता नहीं है, तो मैं बीप उपयोग करेगा, लेकिन मैं वास्तव में की तरह होगा निर्भरताओं से बचने के लिए और सीधे मेरी लिपि में बीप को एकीकृत करने के लिए, लेकिन मुझे यकीन है कि यहां कोई समाधान/समाधान का पता लगाएगा।
मैं वास्तव में बाहरी पुस्तकालयों को नहीं चाहता क्योंकि कार्यक्रम जितना संभव हो उतना हल्का होना चाहिए।
यदि डेस्कटॉप के नीचे चल रहा है, तो आप ALSA का उपयोग कर सकते हैं। और आप 'play' कमांड का भी उपयोग कर सकते हैं ... और कुछ डेस्कटॉप में अधिसूचनाएं हैं ... –
@ बेसिलस्टारनकेविच क्या यह अधिक जटिल चीजें नहीं होगी? मैं सिर्फ एक विशिष्ट आवृत्ति और लंबाई के साथ एक साधारण बीप चाहता हूँ। जैसा कि मैंने पहले ही पाब्लो को बताया है, मैं इसे जितना संभव हो उतना हल्का वजन रखना चाहता हूं, लेकिन मुझे लगता है कि रूट पहुंच प्राप्त करने के लिए बीप या सूड का उपयोग करना है, तो फिर? – omnidan
देखें कि [यह] (http://stackoverflow.com/questions/412789/windows-beep-equivalent-for-linux) आपकी सहायता करता है। @paxdiablo का दावा है कि यह उपयोगकर्ता खाते से भी चलाया जा सकता है। –