टीसॉर्ट: Difference between revisions
(Created page with "{{for|the Discworld location|Discworld (world)#Tsort}} {{lowercase|tsort}} {{Infobox software | name = tsort | logo = | screenshot...") |
No edit summary |
||
(5 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{for| | {{for|डिस्कवर्ल्ड स्थान|डिस्क वर्ल्ड (विश्व)#टीसॉर्ट}} | ||
{{Infobox software | {{Infobox software | ||
| name = tsort | | name = tsort | ||
Line 17: | Line 17: | ||
| website = | | website = | ||
}} | }} | ||
टीसॉर्ट प्रोग्राम [[यूनिक्स]] और यूनिक्स जैसे प्लेटफार्मों पर एक [[कमांड लाइन इंटरफेस]] उपयोगिता है, जो अपने इनपुट पर [[ टोपोलॉजिकल छँटाई ]] करता है। {{As of|2017}}, यह [[POSIX]] | '''टीसॉर्ट''' प्रोग्राम [[यूनिक्स]] और यूनिक्स जैसे प्लेटफार्मों पर एक [[कमांड लाइन इंटरफेस]] उपयोगिता है, जो अपने इनपुट पर [[ टोपोलॉजिकल छँटाई |सांस्थितिक सॉर्ट]] करता है। {{As of|2017}}, यह [[POSIX|पोसिक्स]]1 मानक का हिस्सा है। <ref>{{cite web|title=क्रम से लगाना|url=http://pubs.opengroup.org/onlinepubs/9699919799/utilities/क्रम से लगाना.html|publisher=The Open Group|work=The Open Group Base Specifications Issue 7, 2018 edition | ||
}}</ref> | }}</ref> | ||
==इतिहास== | ==इतिहास== | ||
इसकी जानकारी के अनुसार (यूनिक्स)<ref>{{Cite web|url=https://www.gnu.org/software/coreutils/manual/html_node/tsort-background.html|title = Tsort background (GNU Coreutils 9.0)}}</ref> पेज, यह कमांड | इसकी जानकारी के अनुसार (यूनिक्स) <ref>{{Cite web|url=https://www.gnu.org/software/coreutils/manual/html_node/tsort-background.html|title = Tsort background (GNU Coreutils 9.0)}}</ref> पेज, यह कमांड प्रारम्भ में ऑब्जेक्ट फ़ाइलों का क्रम प्रदान करने के लिए लिखा गया था जो [[लिंकर (कंप्यूटिंग)]] को उन्हें क्रमिक रूप से संसाधित करने की अनुमति देता था (प्रत्येक एक बिल्कुल एक बार, और क्रम में)। फ्रीबीएसडी मैनुअल पेज की उपस्थिति [[संस्करण 7 यूनिक्स]] पर आधारित है। <ref>{{Cite web|url=http://www.freebsd.org/cgi/man.cgi?query=tsort|title = Tsort}}</ref> | ||
ध्यान दें कि निम्नलिखित विवरण | |||
ध्यान दें कि निम्नलिखित विवरण टीसॉर्ट के [[FreeBSD|फ्रीबीएसडी]] कार्यान्वयन के व्यवहार का वर्णन कर रहा है और जीएनयू सुविधाओं का उल्लेख करता है जहां वे उपस्थित हो सकते हैं। अन्य कार्यान्वयन या संस्करण भिन्न हो सकते हैं. | |||
==वाक्यविन्यास== | ==वाक्यविन्यास== | ||
tsort [-dlq] [ | '''tsort [-dlq] [FILE]''' | ||
फ्रीबीएसडी विकल्प हो सकते हैं: | |||
-d turn on debugging | |||
-l search for and display the longest cycle. | |||
-q Do not display informational messages about cycles. | |||
जीएनयू केवल निम्नलिखित विकल्प प्रदान करता है: | |||
--help | --help display help message and exit | ||
--version display version information and exit | |||
पोसिक्स द्वारा कोई विकल्प निर्धारित नहीं हैं। | |||
==व्यवहार== | ==व्यवहार== | ||
टीसॉर्ट अपने इनपुट को (दी गई फ़ाइल से, या मानक स्ट्रीम से यदि कोई इनपुट फ़ाइल नहीं दी गई है या '-' की फ़ाइल के लिए) स्ट्रिंग के जोड़े के रूप में पढ़ता है, रिक्त स्थान से अलग किया जाता है, जो आंशिक क्रम का संकेत देता है। आउटपुट कुल क्रमण है जो दिए गए आंशिक क्रमण से मेल खाता है। <ref>{{Cite web|url=https://www.gnu.org/software/coreutils/manual/html_node/tsort-invocation.html|title = Tsort invocation (GNU Coreutils 9.0)}}</ref> | |||
दूसरे शब्दों में: एक निर्देशित चक्रीय | |||
दूसरे शब्दों में: एक निर्देशित चक्रीय आरेख ([[निर्भरता ग्राफ|निर्भरता आरेख]] के रूप में प्रयुक्त) के लिए, टीसॉर्ट शीर्षों की एक सूची तैयार करता है ताकि सभी किनारों 'a->b' के लिए, 'a' सूची में 'b' से पहले आए। | |||
==उदाहरण== | ==उदाहरण== | ||
टीसॉर्ट एक निर्देशित चक्रीय आरेख के शीर्षों को इस तरह से सूचीबद्ध करता है कि सभी क्रम/दिशा संबंधों का सम्मान किया जाता है: | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|<syntaxhighlight lang="console"> | |<syntaxhighlight lang="console"> | ||
Line 72: | Line 76: | ||
=== | === आह्वान आरेख़ === | ||
टीसॉर्ट किसी स्रोत फ़ाइल में फलन को पुनर्व्यवस्थित करने में मदद कर सकता है ताकि जितना संभव हो उतना उपयोग करने से पहले परिभाषित किया जा सके (निम्नलिखित को इस प्रकार समझें: {{code|main()}} आह्वान करता है {{code|parse_options()}}, {{code|tail_file()}} और {{code|tail_forever()}}; {{code|tail_file()}} आह्वान करता है {{code|pretty_name()}}, और इसी तरह। नतीजा यह है कि {{code|dump_remainder()}} को पहले {{code|start_lines()}} दूसरा, आदि परिभाषित किया जाना चाहिए): | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|-valign="top" | |-valign="top" | ||
Line 126: | Line 130: | ||
=== पुस्तकालय === | === पुस्तकालय === | ||
पारंपरिक [[एलडी (यूनिक्स)]] (यूनिक्स लिंकर) के लिए आवश्यक है कि उसके लाइब्रेरी इनपुट को | पारंपरिक [[एलडी (यूनिक्स)]] (यूनिक्स लिंकर) के लिए आवश्यक है कि उसके लाइब्रेरी इनपुट को सांस्थितिक क्रम में क्रमबद्ध किया जाए, क्योंकि यह एक ही पास में फाइलों को संसाधित करता है। यह स्थिर पुस्तकालय ({{code|*.a}}) और गतिशील पुस्तकालय ({{code|*.so}}) दोनों पर लागू होता है, और स्थैतिक पुस्तकालयों की स्तिथि में अधिमानतः भीतर निहित व्यक्तिगत ऑब्जेक्ट फ़ाइलों के लिए है। <ref>{{cite web |title=c++ - gcc ld: method to determine link order of static libraries |url=https://stackoverflow.com/questions/34164594/gcc-ld-method-to-determine-link-order-of-static-libraries/63530973 |website=Stack Overflow}}</ref> बीएसडी यूनिक्स विशिष्ट [[ar (Unix)|एआर (यूनिक्स)]] और रैनलिब कमांड इनवोकेशन (/usr/share/mk/bsd.lib.mk से) के एक सामान्य भाग के रूप में टीसॉर्ट का उपयोग करता है: | ||
<syntaxhighlight lang="make"> | <syntaxhighlight lang="make"> | ||
lib${LIB}.a: ${OBJS} ${STATICOBJS} | lib${LIB}.a: ${OBJS} ${STATICOBJS} | ||
Line 161: | Line 164: | ||
समान वस्तुओं के जोड़े एक शीर्ष की उपस्थिति का संकेत देते हैं, लेकिन क्रमबद्ध नहीं (इसलिए निम्नलिखित किनारों के बिना एक शीर्ष का प्रतिनिधित्व करता है): | समान वस्तुओं के जोड़े एक शीर्ष की उपस्थिति का संकेत देते हैं, लेकिन क्रमबद्ध नहीं (इसलिए निम्नलिखित किनारों के बिना एक शीर्ष का प्रतिनिधित्व करता है): | ||
a asammilit | |||
कड़ाई से कहें तो ऐसे | कड़ाई से कहें तो ऐसे आरेख़ का कोई सांस्थितिक ऑर्डर नहीं होता है जिसमें एक या अधिक चक्र (आरेख़ सिद्धांत) सम्मिलित हो। हालाँकि टीसॉर्ट एक चेतावनी मुद्रित करता है और जीएनयू टीसॉर्ट चक्र पहचान (आरेख सिद्धांत) को [[stderr|सत्देरर]] ('टीसॉर्ट:' से प्रारम्भ होने वाली पंक्तियाँ) पर मुद्रित करता है: | ||
<syntaxhighlight lang="console"> | <syntaxhighlight lang="console"> | ||
$ tsort <<EOF | $ tsort <<EOF | ||
Line 182: | Line 185: | ||
==यह भी देखें== | ==यह भी देखें== | ||
{{Portal|Free and open-source software}} | {{Portal|Free and open-source software}} | ||
* | * सॉर्ट (यूनिक्स) | ||
* [[बनाओ (सॉफ्टवेयर)]] | * [[बनाओ (सॉफ्टवेयर)|मेक (सॉफ्टवेयर)]] | ||
* | * सांस्थितिक सॉर्टिंग | ||
* [[यूनिक्स कमांड की सूची]] | * [[यूनिक्स कमांड की सूची]] | ||
* [[कॉल ग्राफ़]] | * [[कॉल ग्राफ़|आह्वान आरेख़]] | ||
==संदर्भ== | ==संदर्भ== | ||
Line 200: | Line 203: | ||
==बाहरी संबंध== | ==बाहरी संबंध== | ||
manual page of | manual page of टीसॉर्ट on | ||
* [http://www.freebsd.org/cgi/man.cgi?query=tsort FreeBSD], | * [http://www.freebsd.org/cgi/man.cgi?query=tsort FreeBSD], | ||
* [http://man.openbsd.org/tsort.1 OpenBSD], | * [http://man.openbsd.org/tsort.1 OpenBSD], | ||
Line 212: | Line 215: | ||
{{Core Utilities commands}} | {{Core Utilities commands}} | ||
<!-- Categories --> | <!-- Categories --> | ||
[[Category: | [[Category:All articles containing potentially dated statements]] | ||
[[Category:Articles containing potentially dated statements from 2017]] | |||
[[Category:Articles with hatnote templates targeting a nonexistent page]] | |||
[[Category:CS1 errors]] | |||
[[Category:Collapse templates]] | |||
[[Category:Created On 11/07/2023]] | [[Category:Created On 11/07/2023]] | ||
[[Category:Machine Translated Page]] | |||
[[Category:Navigational boxes| ]] | |||
[[Category:Navigational boxes without horizontal lists]] | |||
[[Category:Pages with empty portal template]] | |||
[[Category:Pages with script errors]] | |||
[[Category:Portal templates with redlinked portals]] | |||
[[Category:Sidebars with styles needing conversion]] | |||
[[Category:Template documentation pages|Documentation/doc]] | |||
[[Category:Templates Vigyan Ready]] | |||
[[Category:Templates generating microformats]] | |||
[[Category:Templates that are not mobile friendly]] | |||
[[Category:Templates using TemplateData]] | |||
[[Category:Wikipedia metatemplates]] | |||
[[Category:इन्फर्नो (ऑपरेटिंग सिस्टम) कमांड]] | |||
[[Category:यूनिक्स SUS2008 उपयोगिताएँ]] |
Latest revision as of 11:00, 27 July 2023
Initial release | 1979 |
---|---|
Operating system | Unix, Unix-like, V, Inferno |
Platform | Cross-platform |
Type | Command |
टीसॉर्ट प्रोग्राम यूनिक्स और यूनिक्स जैसे प्लेटफार्मों पर एक कमांड लाइन इंटरफेस उपयोगिता है, जो अपने इनपुट पर सांस्थितिक सॉर्ट करता है। As of 2017[update], यह पोसिक्स1 मानक का हिस्सा है। [1]
इतिहास
इसकी जानकारी के अनुसार (यूनिक्स) [2] पेज, यह कमांड प्रारम्भ में ऑब्जेक्ट फ़ाइलों का क्रम प्रदान करने के लिए लिखा गया था जो लिंकर (कंप्यूटिंग) को उन्हें क्रमिक रूप से संसाधित करने की अनुमति देता था (प्रत्येक एक बिल्कुल एक बार, और क्रम में)। फ्रीबीएसडी मैनुअल पेज की उपस्थिति संस्करण 7 यूनिक्स पर आधारित है। [3]
ध्यान दें कि निम्नलिखित विवरण टीसॉर्ट के फ्रीबीएसडी कार्यान्वयन के व्यवहार का वर्णन कर रहा है और जीएनयू सुविधाओं का उल्लेख करता है जहां वे उपस्थित हो सकते हैं। अन्य कार्यान्वयन या संस्करण भिन्न हो सकते हैं.
वाक्यविन्यास
tsort [-dlq] [FILE]
फ्रीबीएसडी विकल्प हो सकते हैं:
-d turn on debugging
-l search for and display the longest cycle.
-q Do not display informational messages about cycles.
जीएनयू केवल निम्नलिखित विकल्प प्रदान करता है:
--help display help message and exit
--version display version information and exit
पोसिक्स द्वारा कोई विकल्प निर्धारित नहीं हैं।
व्यवहार
टीसॉर्ट अपने इनपुट को (दी गई फ़ाइल से, या मानक स्ट्रीम से यदि कोई इनपुट फ़ाइल नहीं दी गई है या '-' की फ़ाइल के लिए) स्ट्रिंग के जोड़े के रूप में पढ़ता है, रिक्त स्थान से अलग किया जाता है, जो आंशिक क्रम का संकेत देता है। आउटपुट कुल क्रमण है जो दिए गए आंशिक क्रमण से मेल खाता है। [4]
दूसरे शब्दों में: एक निर्देशित चक्रीय आरेख (निर्भरता आरेख के रूप में प्रयुक्त) के लिए, टीसॉर्ट शीर्षों की एक सूची तैयार करता है ताकि सभी किनारों 'a->b' के लिए, 'a' सूची में 'b' से पहले आए।
उदाहरण
टीसॉर्ट एक निर्देशित चक्रीय आरेख के शीर्षों को इस तरह से सूचीबद्ध करता है कि सभी क्रम/दिशा संबंधों का सम्मान किया जाता है:
$ tsort <<EOF
> 3 8
> 3 10
> 5 11
> 7 8
> 7 11
> 8 9
> 11 2
> 11 9
> 11 10
> EOF
3
5
7
11
8
10
2
9
|
आह्वान आरेख़
टीसॉर्ट किसी स्रोत फ़ाइल में फलन को पुनर्व्यवस्थित करने में मदद कर सकता है ताकि जितना संभव हो उतना उपयोग करने से पहले परिभाषित किया जा सके (निम्नलिखित को इस प्रकार समझें: main()
आह्वान करता है parse_options()
, tail_file()
और tail_forever()
; tail_file()
आह्वान करता है pretty_name()
, और इसी तरह। नतीजा यह है कि dump_remainder()
को पहले start_lines()
दूसरा, आदि परिभाषित किया जाना चाहिए):
$ cat call-graph
main parse_options
main tail_file
main tail_forever
tail_file pretty_name
tail_file write_header
tail_file tail
tail_forever recheck
tail_forever pretty_name
tail_forever write_header
tail_forever dump_remainder
tail tail_lines
tail tail_bytes
tail_lines start_lines
tail_lines dump_remainder
tail_lines file_lines
tail_lines pipe_lines
tail_bytes xlseek
tail_bytes start_bytes
tail_bytes dump_remainder
tail_bytes pipe_bytes
file_lines dump_remainder
recheck pretty_name
|
$ # note: 'tac' reverses the order
$ tsort call-graph | tac
dump_remainder
start_lines
file_lines
pipe_lines
xlseek
start_bytes
pipe_bytes
tail_lines
tail_bytes
pretty_name
write_header
tail
recheck
parse_options
tail_file
tail_forever
main
|
पुस्तकालय
पारंपरिक एलडी (यूनिक्स) (यूनिक्स लिंकर) के लिए आवश्यक है कि उसके लाइब्रेरी इनपुट को सांस्थितिक क्रम में क्रमबद्ध किया जाए, क्योंकि यह एक ही पास में फाइलों को संसाधित करता है। यह स्थिर पुस्तकालय (*.a
) और गतिशील पुस्तकालय (*.so
) दोनों पर लागू होता है, और स्थैतिक पुस्तकालयों की स्तिथि में अधिमानतः भीतर निहित व्यक्तिगत ऑब्जेक्ट फ़ाइलों के लिए है। [5] बीएसडी यूनिक्स विशिष्ट एआर (यूनिक्स) और रैनलिब कमांड इनवोकेशन (/usr/share/mk/bsd.lib.mk से) के एक सामान्य भाग के रूप में टीसॉर्ट का उपयोग करता है:
lib${LIB}.a: ${OBJS} ${STATICOBJS}
@${ECHO} building static ${LIB} library
@${AR} cq ${.TARGET} `lorder ${OBJS} ${STATICOBJS} | tsort -q` ${ARADD}
${RANLIB} ${.TARGET}
यहाँ lorder
(लाइब्रेरी ऑर्डर) का उपयोग प्रतीक तालिका का निरीक्षण करके अंतर-फ़ाइल निर्भरता सूची उत्पन्न करने के लिए किया जाता है।
उपयोग नोट्स
श्वेत स्थान विभाजकों की विनिमेयता पर ध्यान दें ताकि निम्नलिखित इनपुट समतुल्य हों:
a b b c |
a b b c |
a b b c |
a b b c |
a b b c |
समान वस्तुओं के जोड़े एक शीर्ष की उपस्थिति का संकेत देते हैं, लेकिन क्रमबद्ध नहीं (इसलिए निम्नलिखित किनारों के बिना एक शीर्ष का प्रतिनिधित्व करता है):
a asammilit
कड़ाई से कहें तो ऐसे आरेख़ का कोई सांस्थितिक ऑर्डर नहीं होता है जिसमें एक या अधिक चक्र (आरेख़ सिद्धांत) सम्मिलित हो। हालाँकि टीसॉर्ट एक चेतावनी मुद्रित करता है और जीएनयू टीसॉर्ट चक्र पहचान (आरेख सिद्धांत) को सत्देरर ('टीसॉर्ट:' से प्रारम्भ होने वाली पंक्तियाँ) पर मुद्रित करता है:
$ tsort <<EOF
> a b
> b c
> c a
> EOF
UX: tsort: INFORM: cycle in data
tsort: a
tsort: b
tsort: c
a
b
c
यह भी देखें
- सॉर्ट (यूनिक्स)
- मेक (सॉफ्टवेयर)
- सांस्थितिक सॉर्टिंग
- यूनिक्स कमांड की सूची
- आह्वान आरेख़
संदर्भ
- ↑ से लगाना.html "क्रम से लगाना". The Open Group Base Specifications Issue 7, 2018 edition. The Open Group.
{{cite web}}
: Check|url=
value (help) - ↑ "Tsort background (GNU Coreutils 9.0)".
- ↑ "Tsort".
- ↑ "Tsort invocation (GNU Coreutils 9.0)".
- ↑ "c++ - gcc ld: method to determine link order of static libraries". Stack Overflow.
अग्रिम पठन
- Knuth, Donald E. (1997). The Art of Computer Programming. Vol. 1 (3rd ed.). pp. 261–268. ISBN 0-201-89683-4.
- Kahn, A.B. (1962). "Topological sorting of large networks". Communications of the ACM. 5 (11): 558–562. doi:10.1145/368996.369025. S2CID 16728233.
बाहरी संबंध
manual page of टीसॉर्ट on