Thursday 30 November 2017

Nodejs writefile बाइनरी विकल्प


Node. js पठनीय धाराओं के साथ पाठ और बाइनरी डेटा पढ़ना यह ट्यूटोरियल नोड। जेएस पठनीय धाराओं के उपयोग और सृजन की व्याख्या करेगा: संस्करण जानकारी लेखक: जेफ बारसेज़वेस्की प्रकाशित: 3 अगस्त 2018 टैग: नोडज, स्ट्रीम स्तर: मध्यवर्ती आवश्यकताएँ: क्रिप्टो, घटनाओं, एनपीएम मॉड्यूल स्थापित करें Node. js v0.10 (इस लेखन के रूप में नवीनतम स्थिर है v0.10.15), लेकिन धाराएं आमतौर पर अपने शुरुआती दिनों से नोड. जे. का हिस्सा रही हैं Streams2 को नोड के पुराने संस्करणों के साथ इस्तेमाल किया जा सकता है एनएमएम मॉड्यूल पठनीय-धारा उपभोक्ता या पठनीय धाराओं का प्रयोग करना एक फाइल को पढ़ने और इसे स्टेडाउट में गूंजने का सरल उदाहरण: एक फाइल के sha1 डाइजेस्ट का निर्माण करना और परिणाम को स्टेडाउट (शःसम के समान) में गूंज करना: डाटा इवेंट को पठनीय स्ट्रीम पर निकाल दिया जाता है डेटा के प्रत्येक भाग के लिए, ताकि आप प्रत्येक भाग के लिए डायजेस्ट को अपडेट करते रहें, फिर अंत में घटना को निकाल दिया जाता है जब धारा समाप्त हो जाती है, तो आप अंतिम परिणाम का उत्पादन कर सकते हैं। ध्यान दें कि हर बार जब आप कॉल करते हैं.on () एक श्रोता को पंजीकृत करने के लिए यह मूल स्ट्रीम को रिटर्न करता है ताकि आप आसानी से चेन तरीकों को निकाल सकें नोड. जेएस 0.10 के साथ धाराओं का उपभोग करने का एक बेहतर तरीका है। पठनीय इंटरफ़ेस धाराओं के साथ काम करना आसान बनाता है, खासकर धाराएं जहां आप धारा बनाने और स्ट्रीम का उपयोग करने के बीच अन्य चीजें करना चाहते हैं। ये नई पठनीय धाराएं उन पुलियां खींचती हैं जहां डेटा को आपके पास धक्का जाने के बजाय डेटा के लिए अनुरोध किया जाता है। इस उदाहरण को समझने की कुंजी यह है कि नई स्ट्रीम 2 पठनीय इंटरफ़ेस के साथ, एक पठनीय घटना उतनी ही उत्सर्जित हो जाएगी जैसे डेटा पढ़ने के लिए उपलब्ध है और आप कॉल कर सकते हैं। एक बार जब कोई और डाटा उपलब्ध न हो तो पढ़ें () रिक्त रिटर्न, लेकिन फिर से एक और पठनीय घटना फिर से निकाल दी जाती है जब डेटा फिर से उपलब्ध होता है यह फ़ाइल के अंत तक जारी रहता है जब अंत की तरह पहले से निकाल दिया जाता है एक पठनीय धारा बनाने के लिए फ़ाइल सिस्टम या स्ट्रीम से धाराओं का उपयोग करने के लिए, आप स्ट्रीम बनाने के लिए कोर एफएस और एचटीटीपी विधियों का उपयोग कर सकते हैं, लेकिन आप अपनी खुद की स्ट्रीम कैसे बना सकते हैं और इसे डेटा से भर सकते हैं यह डाटाबेस से डाटा हो सकता है या किसी भी संख्या में स्रोत से यहां एक पठनीय धारा बनाने का एक उदाहरण है जो यादृच्छिक बाइनरी डेटा से उत्पन्न होता है, फिर इसे पहले की तरह दिखाना है यह परीक्षण के लिए नदियों को बनाने में उपयोगी होगा: नोट: पढ़ने के बाद () को कहा जाता है, हमें तब तक पढ़ना जारी रखना चाहिए जब तक कि हम काम नहीं करते या पुश () तक झूठी लौटाते हैं। पुराने नोड. जेएस संस्करणों के साथ स्ट्रीम 2 का उपयोग करना यदि आप इस कोड को 0.10 से पुराने नोड. जेएस के साथ काम करना चाहते हैं, तो आप अपने पैकेज में पढ़ने योग्य-स्ट्रीम के लिए निर्भरता को शामिल कर सकते हैं और पढ़ने के लिए लाइन 5 बदल सकते हैं: यह मूल का उपयोग करेगा अगर Node. js संस्करण 0.10 है और यदि नहीं, तो यह पठनीय स्ट्रीम है, तो यह पॉलीफिल पठनीय-स्ट्रीम मॉड्यूल को लोड करेगा और वहां से इसका उपयोग करेगा। स्ट्रीम और स्ट्रीम 2 की रोकें रोकें धाराएं कभी-कभी किसी एप्लिकेशन से अधिक तेज़ी से डेटा प्रदान कर सकती हैं, इसलिए स्ट्रीम को रोकने की क्षमता शामिल होती है और स्ट्रीम को पुनरारंभ होने तक डेटा बफर होता है। स्ट्रीम 2 से पहले, आपको सावधानीपूर्वक ध्यान देने की ज़रूरत होगी कि आप पॉज़िंग और फिर से शुरू करने के साथ ही डेटा फिर से शुरू करने तक बफर करने लगे। हालांकि स्ट्रीम 2 (नोड. जेएस 0.10 या पठनीय-स्ट्रीम पैकेज के माध्यम से) से पठनीय है कि आपके और स्ट्रीम के लिए कार्यक्षमता को स्वचालित रूप से तब तक रोका गया है जब तक कि रीड () कहा जाता है। आप पुरानी धाराओं पर नए इंटरफेस को कार्यान्वित करने के लिए एक रीडबल के साथ पुरानी धाराओं को भी लपेट कर सकते हैं: एक अन्य स्थिति में आपको विराम और फिर से शुरू होने के बारे में चिंता करने की जरूरत है अगर आपका उपभोक्ता कोड पुराने पुश शैली इंटरफ़ेस कॉलिंग का उपयोग करता है.on (39data39, श्रोता)। यह स्ट्रीम को पीछे की संगतता मोड में डालता है और आपको कॉल करने की आवश्यकता होगी। रोकें () और. resume () अपने आवेदन में आने वाले डेटा की दर को नियंत्रित करने के लिए। यदि आप अपने कोड में पुराने इंटरफ़ेस का उपयोग कर रहे हैं, तो विवरण के लिए स्ट्रीम API डॉक्स देखें। ऑब्जेक्ट स्ट्रीम शुरू में जब धाराओं को आधिकारिक एपीआई पेश किया गया था, तो यह संकेत मिलता था कि डेटा एकत्रित होने वाला बफ़र बफर या स्ट्रिंग होगा, हालांकि कई प्रयोक्ताओं को यह पता चला कि यह वस्तुएं स्ट्रीम करने में सक्षम होने के लिए बहुत अच्छी थी नोड। जेएस 0.10 में धारा 2 ने औपचारिक रूप से स्पष्ट किया कि यह कैसे काम करना चाहिए। ऑब्जेक्ट मोड में कब पढ़ें (एन) बस अगले ऑब्जेक्ट देता है (एन की अनदेखी) ऑब्जेक्ट मोड में किसी स्ट्रीम को स्विच करने के लिए, ऑब्जेक्टमोड प्रॉपर्टी को अपनी पठनीय स्ट्रीम बनाने के लिए इस्तेमाल किए गए विकल्पों में सही सेट करें ताकि आप बसों में ऑब्जेक्ट्स का इस्तेमाल आसानी से कर सकते हैं, बफ़र्स और स्ट्रिंग्स का इस्तेमाल कर सकते हैं, लेकिन एकमात्र सीमा यह है कि ऑब्जेक्ट्स पास निरर्थक नहीं हो सकता है क्योंकि यह संकेत देगा कि स्ट्रीम समाप्त हो गया है। Node. js पठनीय धाराएं लचीला होती हैं और आसान नोड। जेएस पठनीय धाराओं का इस्तेमाल करना आसान होता है और यहां तक ​​कि निर्माण करने में आसान भी होता है। आप न केवल बाइनरी और स्ट्रिंग डेटा को स्ट्रीम कर सकते हैं बल्कि ऑब्जेक्ट भी कर सकते हैं और फिर भी स्ट्रीम कार्यक्षमता का लाभ उठा सकते हैं। मुझे आशा है कि आप पठनीय धाराओं के इस त्वरित दौरे का आनंद लें, मुझे बताएं कि क्या आपके कोई प्रश्न हैं अतिरिक्त पठन के लिए इस पेज को साझा करें आप चीजों को ज्यादा कठिन बना रहे हैं, जितना कि उन्हें होना चाहिए। नोड बफर ऑब्जेक्ट बेस64 को इनपुट के रूप में लेता है और आपके लिए उस सभी डीकोडिंग को करता है। आप डेटा को केवल पट्टी कर सकते हैं: छवि base64 स्ट्रिंग से भाग और उस डेटा को अपने WriteFileAssistant पास करें। WriteFileAssistant को बस base64 स्ट्रिंग लेने और बफर निर्माता के लिए एक तर्क के रूप में पास करने की आवश्यकता है। इसके अलावा, OpenSync कॉल पर होने पर भी चीजों को भी टूट जाएगा बफ़र एक स्ट्रिंग और एक एन्कोडिंग लेता है, तो यह स्ट्रिंग को बाइट्स की एक श्रृंखला में संसाधित करने के लिए एन्कोडिंग मान का उपयोग करता है, इसलिए जब आप यह कहते हैं कि स्ट्रिंग बेस64 है, तो यह आपके लिए बेस 64 को डीकोड करेगा और बाइट्स की उचित डिकोडेड सरणी फाइल को लिखने के लिए 11 सितंबर 11 11 को उत्तर दिया: 30 नोड जेएस और बाइनरी डेटा अद्यतन: इनमें से कोई भी जरूरी नहीं होना चाहिए, क्योंकि नवीनतम नोड में फाइलआरडस्ट्रीम डिफ़ॉल्ट रूप से बफ़र्स का उपयोग करता है। हालांकि, ऐसा प्रतीत होता है कि या तो कुछ गलत कर रहा है या डॉक्स पुराने हैं, क्योंकि यह नोड हेड पर ऐसा काम नहीं करता है दो क्षेत्रों में जहां नोड। जेएसएस के उदास रूप से अभाव है, द्विआधारी डेटा और बड़ी तारों का प्रबंधन है। इस पोस्ट में मैं नोड में द्विआधारी डेटा से निपटने के लिए कुछ तकनीकों पर जाना चाहता हूं, जिनमें से अधिकांश वी 839 के कचरा कलेक्टर के साथ घूमते हैं, और तथ्य यह है कि नोड में तार बाइनरी डेटा के लिए नहीं बने हैं, वे यूटीएफ -8 और UTF-16 डेटा तीन मुख्य धमाकेदार विवरण हैं जो नोड। जेएस में डेटा के साथ काम कर रहे हैं दर्द: बड़े स्ट्रिंग्स (जीटी 64 के) आपके दोस्त नहीं हैं नोड स्ट्रिंग में बाइनरी (और एएससीआईआई) डेटा को यूटीएफ -16 स्ट्रिंग के पहले बाइट के रूप में संग्रहित किया जाता है। बोनर डेटा सबसे कुशलता से एक बफ़र के रूप में Node. js में संग्रहीत किया जा सकता है, पहले आइटम को देखने देता है, बड़े स्ट्रिंग्स आपके दोस्त हैं। Node. js निर्माता आर. आई. खुद ने इस मुद्दे को खुद को एनजीएन के साथ किए गए प्रदर्शन की तुलना में चुनौती दी थी। यदि आप पीडीएफ देख रहे हैं, (या नीचे निकाले गये चार्ट को देखें) तो आपको पता चल जाएगा कि नोड 64 बिट मार्क हिट तक एनजीएनक्स के साथ तालमेल रखते हुए अच्छा काम करता है, तो प्रदर्शन सिर्फ अलग होता है। कारण, ry39 के शब्दों में: वी 8 में एक जनरेशनल कचरा कलेक्टर होता है जो ऑब्जेक्ट के आसपास ऑब्जेक्ट को ले जाता है। नोड खिचड़ी भाषा को सॉकेट पर लिखने के लिए कच्चे स्ट्रिंग डेटा के लिए एक सूचक मिलता है। आप रायन के स्लाइड्स में प्रासंगिक ग्राफ में देख सकते हैं। जो मैं आसानी से निकाला और नीचे पोस्ट किया (मुझे आशा है कि आप मन रयान नहीं है)। यह पढ़ने के बाद मेरे लिए क्या स्पष्ट रूप से स्पष्ट था, यह उन मामलों में होता है जहां एक नोड का उपयोग करने के लिए द्विआधारी डेटा के बड़े बिट्स को तार के रूप में आते हैं। यदि आप नोड का उपयोग करने के लिए कहते हैं, तो फ़ाइल सिस्टम से पढ़ें, जिसे आप वापस बाइनरी स्ट्रिंग प्राप्त करते हैं, बफर नहीं। मेरा सवाल था: यदि मेरे पास बाइनरी डेटा है जो पहले से एक घटिया UTF-16 स्ट्रिंग में फंस गया है, लेकिन उसे बफर में भेजने से पहले इसे दबाएं, तो यह गति के साथ मदद करेगा। प्रश्नोत्तर जवाब में 100 एमआईबीएसईसी से 160 एमआईबीएसएसी में वृद्धि हुई है। मेरे खुद के प्रदर्शन परीक्षणों से नीचे दिए गए ग्राफ़ को देखें, जहां मैंने अलग रीड चाड आकार के साथ खेला (कितना डेटा एक बार और बफर आकार में पढ़ता है (कितना डेटा हम सॉकेट में फ्लश करने से पहले बफर में कितना डेटा संग्रहीत करता है): जैसा कि आप देख सकते हैं बफ़र्स (बफ) का उपयोग करने वाले प्रदर्शन से पैंट को स्ट्रिंग्स (स्ट्र) का उपयोग करते हुए धड़कता है। कोड के दो टुकड़ों के बीच का अंतर नीचे देखा जा सकता है I शुरू में यह नहीं सोचता था कि इस रूपांतरण से सभी को मदद मिलेगी, एक स्ट्रिंग (जैसा FileReadStream से डेटा है), एक भी इसे सॉकेट में फ्लश कर सकता है और जारी रख सकता है। इससे मुझे आश्चर्य होता है कि अन्य एप्लिकेशन भी अपने आउटपुट (शायद उनके UTF-8 आउटपुट भी) में जमा हो जाएंगे बफर जहां संभव हो, फिर अंत में बफर को फ्लश कर, res. write को दोहराने के लिए कॉल करने की बजाए किसी को इसकी जांच करने की आवश्यकता होती है। इसके अतिरिक्त, यह मुझे आश्चर्य करता है कि अगर मेरे नतीजे FileReadStream ऑब्जेक्ट संशोधित हो सेवा मेरे स्ट्रिंग के बजाए एक बफ़र लौटें इसके अलावा, आप शायद पढ़े चाड आकार की तुलना में बड़े बफ़ साइज़ का इस्तेमाल करने के बारे में पूछ रहे हों, लेकिन मैंने पाया कि वास्तव में एक बड़ा बफर इस्तेमाल करते समय कोई अंतर नहीं था, इसलिए इष्टतम रणनीति वास्तव में 64KiB खंड को पढ़ने में प्रतीत होती है 64 केबी बफर आप इस डेटा को पोस्ट के नीचे देख सकते हैं। डेटा में मैं ऊपर graphed, मैं एबी-सी 100 - n 1000 के साथ 1 एमआईबी फ़ाइल के साथ चंक आकार बदलने और पढ़ें आकार के साथ कई रन बना दिया। प्रासंगिक नमूना कोड नीचे देखा जा सकता है। पूर्ण नमूना कोड नोड-पेपरबॉय की मेरी कांटा होगा। सिग्नलस फाइल IO में नोड। जेएस में 26 अगस्त 2018 को डेव एडी द्वारा पोस्ट किया गया था - टैग: तकनीक फ़्लेमिंग करता है fs. writeFileSync फाइल सिस्टम को एक तुल्यकालिक लिखने को ट्रिगर करता है अगर आप परिचित हैं Node. js. या कम से कम इसके बारे में सुना है, आप सबसे अधिक संभावना सुना है कि यह गैर अवरुद्ध आईओ का उपयोग करता है, और आपको अतुल्यकालिक कार्य करने देता है नोड प्रदान करने वाली सबसे बुनियादी एपीआई में से एक फ़ाइल सिस्टम के लिए है इस एपीआई के साथ, आप पढ़ सकते हैं, लिख सकते हैं, हटा सकते हैं, आदि फाइल कर सकते हैं और अन्य फाइल सिस्टम संबंधित कार्य और संशोधन कर सकते हैं। यह एपीआई प्रत्येक संचालन के लिए 2 फ़ंक्शंस को उजागर करने के एक मानक पैटर्न का अनुसरण करता है: एक अतुल्यकालिक कार्य के लिए, और तुल्यकालिक कार्य के लिए दूसरा। उदाहरण के लिए, यदि आप नोड में एक फ़ाइल पढ़ना चाहते हैं तो आप ऐसा एसिंक्रोनस कर सकते हैं: नोड किसी भी जावास्क्रिप्ट कोड को निष्पादित करने के लिए जारी रखेगी जो फ़ाइल को पढ़ते समय मुठभेड़ करता है। एक बार जब सभी जावास्क्रिप्ट निष्पादित किया जाता है और फ़ाइल तैयार हो जाती है, तो वह गुमनाम फ़ंक्शन चलाएगी और फाइल की सामग्री प्रिंट करेगी। आप एक ही कार्य सिंक्रोनस कर सकते हैं: इस उदाहरण में, सामग्री फ़ाइल की सामग्री पर सेट की जाएगी, और फ़ाइल को पढ़ा जा रहा है, जबकि कोई जावास्क्रिप्ट कोड निष्पादित नहीं किया जाएगा। पहला तरीका अतुल्यकालिक रूप से किया जाता है, और तुरंत चलने से आपके कोड को ब्लॉक नहीं करने के लिए वापस आ जाएगा। दूसरा तुल्यकालिक ढंग से किया जाता है, और कार्य पूरा होने तक निष्पादन को रोक देगा। लिखने, नाम बदलने, हटाने, आदि फ़ाइलों के लिए समान 2 प्रकार के फ़ंक्शन मौजूद हैं। सिंक्रोनस लिखता है तो सवाल है, fs. writeFileSync को कॉल करता है, वास्तव में फ़ाइल सिस्टम को एक तुल्यकालिक लिखता को ट्रिगर करता है यूज़रलैंड नोड प्रक्रिया में, यह समकालिक होता है कि किसी भी जावास्क्रिप्ट के निष्पादन को रोक दिया जाता है, लेकिन कर्नेल में एक अतुल्यकालिक लेखन के बारे में क्या है एक सिंक्रोनस लिखने से फ़ाइल सिस्टम में एक बहुत अलग चीज है। इस ब्लॉग पोस्ट के बाकी हिस्सों के लिए मैं इलुमोज़ कर्नेल और जेडएफएस फाइल सिस्टम के संदर्भ में बोलूंगा। इस सवाल का उत्तर देने के कुछ तरीके हैं। सबसे स्पष्ट तरीका है Node. js स्रोत कोड को खींचना, उन कार्यों को ढूंढें जो फ़ाइल सिस्टम से बात करते हैं जो कि fs. js उपयोग करता है, और देखें कि उन्हें कैसे कहा जाता है। मैं नोड कोर पर बहुत काम किया है, और पता है कि (और अधिकतर होने की संभावना है) मैं उस कोड को खोजने के लिए लंबे समय तक ले सकता हूं। इसके बजाय, मैं सिर्फ सवाल का जवाब देने के लिए डीटी्रेस का उपयोग करता हूं, और वास्तव में नोड क्या कर रहा है। बचाव के लिए डीट्रैस मैंने एक युगल टेस्ट प्रोग्राम लिखा था जो इन फाइल सिस्टम कार्यों का प्रयोग करते हैं। डीटी्रेस का उपयोग करते हुए, हम यह देख सकेंगे कि एक फ़ाइल किस झंडे से खोली गई है, जो दिखाएगी कि आपरेशन तुल्यकालिक है या नहीं। fs. writeFile () यह स्क्रिप्ट नोड एसिंक्रोनस फ़ाइल लेखन तंत्र का अभ्यास करती है। डीटी्रेस का उपयोग करते हुए, हम उस विशिष्ट फाइल के लिए खोलने के लिए दिए गए झंडे (2) प्रिंट कर सकते हैं। फिर, fileflags का उपयोग कर हम उस दशमलव को प्रतीकात्मक नामों में बदल सकते हैं जो दशमलव बनाते हैं (अधिक जानकारी के लिए खुला (2) देखें)। पहली कमांड DTrace को नोड writefile. js चलाने के लिए कहती है। और syscalls के किसी भी खुले परिवार के लिए देखो अगर पहले तर्क को खोलने (पथनाम) उस फ़ाइल से मेल खाता है जिसे हम लिख रहे हैं, तो ठीक सिसल्ट निकालकर प्रिंट करें, और झंडे दशमलव यह पता चला है कि ओपन 64 (2) को हमारी फाइल के लिए बुलाया गया था, जिसमें निम्नलिखित विकल्प दिए गए थे OWRONLY। केवल लिखना ओसीआरएटी खोलें अगर फ़ाइल में ओट्रिन मौजूद नहीं है तो फ़ाइल बनायें फ़ाइल खोलने के लिए काफी मानक विकल्प फ़ाइल को छोटा करें चूंकि किसी भी विकल्प तुल्यकालिक आईओ (ओएसआईएनसी। ओडीएसवाईएन। आदि) के लिए नहीं हैं, इस फाइल को लिखने के लिए एसएक्सएफ के लिए एसिंक्रोनस है, और डेटा को स्थिर भंडारण पर बैठने की गारंटी से पहले (2) रिटर्न लिखने के लिए कॉल। नोड्स एसिंक्रोनस Fs. writeFile फ़ाइल सिस्टम में वास्तव में एक अतुल्यकालिक लिखते हैं। fs. writeFileSync () तो नोड की तुल्यकालिक फ़ाइल लेखन तंत्र के बारे में क्या है, यह फ़ाइल सिस्टम पर एक वास्तविक तुल्यकालिक लेखन है, यह स्क्रिप्ट ईवेंट पाश को अवरुद्ध करेगा, जबकि डेटा को फाइल में लिखा है (या तो हम सोचते हैं), क्योंकि यह नोड्स का उपयोग करता है तुल्यकालिक फ़ाइल लेखन तंत्र उपर्युक्त के समान आदेश, और एक ही आउटपुट नोड की फाइलें फाइल सिस्टम में सिंक्रोनस लिखने की शुरुआत नहीं करता है। एक नोड प्रोग्राम के परिप्रेक्ष्य से, हम एक ही बात जानते हैं जब fs. writeFileSync को कॉल करता है, जैसा कि हम जानते हैं कि fs. writeFile को कॉलबैक निकाल दिया जाता है। हम अंतर्निहित कॉल जानते हैं, लिख (2) वापस आ गया है हम नहीं जानते कि डेटा ने इसे स्थिर भंडारण के लिए बनाया है इसके अंतर मात्र, यह है कि एक समारोह नोड के ईवेंट लूप को ब्लॉक करता है, जबकि अन्य इसे प्रोसेसिंग की घटनाओं को जारी रखने की अनुमति देता है fs. createWriteStream () एक अन्य तंत्र जो फ़ाइल आईओ की अनुमति देता है, एक नोड WritableStream बनाने और लिखना है। उपरोक्त समान उत्पादन, दोबारा। यह तंत्र फ़ाइल को समान झंडे के साथ दोनों fs. writeFile और fs. writeFileSync खोलता है। fs. appendFile () तो एक फाइल को लिखने के लिए फ़ाइल खोलने के लिए एक ही झंडे का उपयोग करता है, ऊपर के रूप में एक ही ड्रिल जोड़ने के बारे में क्या है तो झंडे अलग हैं, यह एक अच्छा संकेत है OTRUNC को OAPPEND के लिए बाहर स्वैप किया गया है। चूंकि हम फ़ाइल को अब 0 बाइट्स में नहीं छोड रहे हैं और इसके बजाय इसे जोड़ रहे हैं फिर, ऊपर दिए गए सभी आदेशों की तरह, fs. appendFile फाइल को अतुल्यकालिक IO के लिए खोलता है। fs. appendFileSync () अंतिम लेकिन कम से कम appendFile के तुल्यकालिक संस्करण का परीक्षण करते हैं। फाइल के रूप में fs. appendFile के समान ही सिंक्रोनस लिखने के लिए नहीं खोला गया है। आम झंडे चलो देखते हैं कि एफओपीएन (3 सी) का इस्तेमाल करते हुए एक फ़ाइल खोलने के लिए एक सरल सी प्रोग्राम का इस्तेमाल होता है यह देखने के लिए कि किस झंडे का उपयोग होता है। फिर इसे ऊपर के समान आदेश के साथ चलाने के लिए यह देखने के लिए कि फाइल किस झंडे के साथ खोली गई थी ज़रुरत है, नोड भूमि में लिखने के लिए एक फ़ाइल खोलने के समान झंडे। fs. writeFileSync इस अर्थ में तुल्यकालिक है कि यह ईवेंट निष्पादित करते समय ईवेंट लूप को ब्लॉक करता है। यह मूलभूत फाइल सिस्टम को एक तुल्यकालिक लिखने के लिए कर्नेल से नहीं पूछता है। यह स्क्रिप्ट ईवेंट लूप को अवरुद्ध करेगा, जबकि डेटा को फाइल में लिखा जाएगा (या तो हमें लगता है)। सिंक्रोनस आईओ के लिए खुली फाइलों में से कोई भी कार्य नहीं है इस वजह से, हम सभी जानते हैं कि कॉल लिखने के लिए (2) रिटर्न, यह नहीं कि डेटा सिस्टम पर लिखा गया है और स्थिर भंडारण के लिए प्लावित है। नाम पर फिसल नहीं आते, fs. writeSync फाइल सिस्टम को सिंक्रनाइज़ नहीं लिखता। यदि आप तुल्यकालिक IO के लिए एक फ़ाइल खोलना चाहते हैं, तो आपको निम्न स्तर fs फ़ंक्शंस का उपयोग करना होगा जो नोड प्रदान करता है जैसे कि fs. open () और fs. fsync ()। प्रतिलिपि डेव एडी लिटेडवाडेविगेट

No comments:

Post a Comment