लिनक्स में एक (गैर-स्ट्रीम) सॉकेट से पढ़ने पर, मुझे ioctl(sock, SIOCGSTAMP, &tv)
के माध्यम से अंतिम प्राप्त संदेश का (हार्डवेयर-जेनरेटेड) टाइमस्टैम्प मिल सकता है। बहरहाल, यह दोनों समस्याओं बन गया है:सॉकेट रीडिंग और टाइमस्टैम्प
- यह एक और syscall है (मैं प्रति सेकंड 24000 के बारे में संदेश प्राप्त हो रहा है, इसलिए प्रत्येक syscall दर्ज करना पड़ा हुआ है) एक पर
- यदि यह दृष्टिकोण का उपयोग कर, मैं केवल
read()
एक संदेश टाइमस्टैम्प प्राप्त करने के लिएioctl()
के बाद। (मैं एकread()
-call में एक से अधिक संदेश को पढ़ने तो रहा हूँ, निम्नलिखितioctl
केवल अंतिम संदेश की टाइमस्टैम्प अर्जित करता है।)
मेरा प्रश्न के रूप में कुछ syscalls में संदेशों और उनके टाइम स्टांप प्राप्त प्राप्त करने के लिए कैसे है यथासंभव। यह सही होगा अगर अर्थशास्त्र के साथ एक सिस्कल था जैसे "लंबित संदेशों को लंबित और उनके टाइमस्टैम्प पढ़ें"।
क्या आपको अपनी सिस्कल समस्या का समाधान मिला? –
नीचे स्वीकृत समाधान एक समाधान है; ऐसा होता है मैं अपने पुराने कर्नेल संस्करण के कारण इसका उपयोग नहीं कर सका। – pmf