सादे सी का उपयोग करते हुए, विंडोज के तहत कंसोल विंडो में ymax और xmax को कैसे जांचें?खिड़कियों के लिए सी में टर्मिनल आकार प्राप्त करना?
#include <stdio.h>
#include <sys/ioctl.h>
int main (void)
{
struct winsize max;
ioctl(0, TIOCGWINSZ , &max);
printf ("lines %d\n", max.ws_row);
printf ("columns %d\n", max.ws_col);
}
अब मुझे आश्चर्य है कि कैसे मैं खिड़कियों के लिए एक ही कर सकते हैं:
लिनक्स के लिए कोड के इस टुकड़े नहीं है। मैंने winioctl.h
की कोशिश की लेकिन यह struct winsize
और न ही किसी अन्य नाम को परिभाषित नहीं करता है।
कोई सुझाव? धन्यवाद।
पीएस। लिनक्स में आप getenv("LINES");
का उपयोग कर कंसोल आकार भी पा सकते हैं। खिड़कियों के नीचे एक समान चर है?
पीपीएस। साथ ही, हमेशा ncurses.h
होता है, जो मुझे लगता है कि दोनों प्रणालियों का काम है, लेकिन मैं इसे अन्य पुस्तकालयों के साथ संघर्ष के कारण टालना चाहता हूं।
पीपीपीएस। इस प्रश्न पर Getting terminal width in C? में बहुत सारी युक्तियां हैं, इसलिए इसे दोहराने की कोई आवश्यकता नहीं है।
मैं परीक्षण करने के लिए समय पर छोटा हूं, लेकिन ऐसा लगता है कि यह सवाल का सही जवाब है। क्या आप इस उत्तर के बीच के अंतर को इंगित करेंगे और वर्तमान में स्वीकार किए गए एक को बफर आकार दिखाता है? धन्यवाद! –
@DrBeco ज्यादातर मामलों में, आपके उत्तर से बफर आकार, और इस उत्तर में उल्लिखित डिस्प्ले विंडो में समान चौड़ाई है, हालांकि इसकी आवश्यकता नहीं है। हालांकि, जैसा कि आप नोट करते हैं कि बफर और खिड़कियां अलग-अलग ऊंचाईें कर सकती हैं - यह एक विंडोज कंसोल सत्र का बैक अप लेने की क्षमता प्रदान करता है। मुझे एक बड़े बफर के संदर्भ में सोचने में सबसे आसान लगता है, जिसमें एक छोटे व्यूपोर्ट (डिस्प्ले) विंडो है जो मुख्य बफर के किसी भी भाग को देख सकती है। – dgnuff