टीसॉर्ट

टीसॉर्ट प्रोग्राम यूनिक्स और यूनिक्स जैसे प्लेटफार्मों पर एक कमांड लाइन इंटरफेस उपयोगिता है, जो अपने इनपुट पर टोपोलॉजिकल छँटाई  करता है।, यह POSIX.1 मानक का हिस्सा है।

इतिहास
इसकी जानकारी के अनुसार (यूनिक्स) पेज, यह कमांड शुरू में ऑब्जेक्ट फ़ाइलों का क्रम प्रदान करने के लिए लिखा गया था जो लिंकर (कंप्यूटिंग) को उन्हें क्रमिक रूप से संसाधित करने की अनुमति देता था (प्रत्येक एक बिल्कुल एक बार, और क्रम में)। फ्रीबीएसडी मैनुअल पेज की उपस्थिति संस्करण 7 यूनिक्स पर आधारित है। ध्यान दें कि निम्नलिखित विवरण tsort के FreeBSD कार्यान्वयन के व्यवहार का वर्णन कर रहा है और GNU सुविधाओं का उल्लेख करता है जहां वे मौजूद हो सकते हैं। अन्य कार्यान्वयन या संस्करण भिन्न हो सकते हैं.

वाक्यविन्यास
tsort [-dlq] [फ़ाइल]

फ्रीबीएसडी विकल्प हो सकते हैं: -डी डिबगिंग चालू करें -l सबसे लंबे चक्र को खोजें और प्रदर्शित करें। -q चक्रों के बारे में सूचनात्मक संदेश प्रदर्शित न करें।

GNU केवल निम्नलिखित विकल्प प्रदान करता है: --help सहायता संदेश प्रदर्शित करें और बाहर निकलें --संस्करण संस्करण जानकारी प्रदर्शित करें और बाहर निकलें

POSIX द्वारा कोई विकल्प निर्धारित नहीं हैं।

व्यवहार
tsort अपने इनपुट को (दी गई फ़ाइल से, या मानक स्ट्रीम से यदि कोई इनपुट फ़ाइल नहीं दी गई है या '-' की फ़ाइल के लिए) स्ट्रिंग के जोड़े के रूप में पढ़ता है, रिक्त स्थान से अलग किया जाता है, जो आंशिक क्रम का संकेत देता है। आउटपुट कुल ऑर्डरिंग है जो दिए गए आंशिक ऑर्डरिंग से मेल खाता है। दूसरे शब्दों में: एक निर्देशित चक्रीय ग्राफ (निर्भरता ग्राफ के रूप में प्रयुक्त) के लिए, tsort एक सूची तैयार करता है शीर्षों को ताकि सभी किनारों 'a->b' के लिए, 'a' सूची में 'b' से पहले आए।

उदाहरण
tsort एक निर्देशित चक्रीय ग्राफ के शीर्षों को इस तरह से सूचीबद्ध करता है कि सभी क्रम/दिशा संबंधों का सम्मान किया जाता है:

कॉल ग्राफ़
tsort किसी स्रोत फ़ाइल में फ़ंक्शंस को पुनर्व्यवस्थित करने में मदद कर सकता है ताकि जितना संभव हो उतना उपयोग करने से पहले परिभाषित किया जा सके (निम्नलिखित को इस प्रकार समझें: main कॉल करता है parse_options, tail_file और tail_forever; tail_file कॉल करता है pretty_name, और इसी तरह। नतीजा यह है dump_remainder को पहले परिभाषित किया जाना चाहिए, start_lines दूसरा, आदि):

पुस्तकालय
पारंपरिक एलडी (यूनिक्स) (यूनिक्स लिंकर) के लिए आवश्यक है कि उसके लाइब्रेरी इनपुट को टोपोलॉजिकल क्रम में क्रमबद्ध किया जाए, क्योंकि यह एक ही पास में फाइलों को संसाधित करता है। यह स्थिर पुस्तकालयों दोनों पर लागू होता है (*.a) और गतिशील पुस्तकालय (*.so), और स्थैतिक पुस्तकालयों के मामले में अधिमानतः भीतर निहित व्यक्तिगत ऑब्जेक्ट फ़ाइलों के लिए। BSD UNIX विशिष्ट ar (Unix) और ranlib कमांड इनवोकेशन (/usr/share/mk/bsd.lib.mk से) के एक सामान्य भाग के रूप में tsort का उपयोग करता है: यहाँ lorder (लाइब्रेरी ऑर्डर) का उपयोग प्रतीक तालिका का निरीक्षण करके अंतर-फ़ाइल निर्भरता सूची उत्पन्न करने के लिए किया जाता है।

उपयोग नोट्स
श्वेत स्थान विभाजकों की विनिमेयता पर ध्यान दें ताकि निम्नलिखित इनपुट समतुल्य हों:

समान वस्तुओं के जोड़े एक शीर्ष की उपस्थिति का संकेत देते हैं, लेकिन क्रमबद्ध नहीं (इसलिए निम्नलिखित किनारों के बिना एक शीर्ष का प्रतिनिधित्व करता है):

एक ए

कड़ाई से कहें तो ऐसे ग्राफ़ का कोई टोपोलॉजिकल ऑर्डर नहीं होता है जिसमें एक या अधिक चक्र (ग्राफ़ सिद्धांत) शामिल हो। हालाँकि tsort एक चेतावनी प्रिंट करता है और GNU tsort चक्र पहचान (ग्राफ सिद्धांत) को stderr ('tsort:' से शुरू होने वाली पंक्तियाँ) पर प्रिंट करता है:

यह भी देखें

 * क्रमबद्ध करें (यूनिक्स)
 * बनाओ (सॉफ्टवेयर)
 * टोपोलॉजिकल सॉर्टिंग
 * यूनिक्स कमांड की सूची
 * कॉल ग्राफ़

बाहरी संबंध
manual page of tsort on
 * FreeBSD,
 * OpenBSD,
 * NetBSD,
 * AIX,
 * Solaris,
 * HP-UX
 * dep-trace Orders basic dependencies and unfolds nested ones. (basic: without 2D graphical presumption)