'\ N' এবং '\ r \ n' এর মধ্যে পার্থক্য


99

হ্যাঁ হ্যাঁ, আমি সচেতন যে am '\n'ইউনিক্স মধ্যে একটি newline লিখেছেন Windows এর জন্য সেখানে থাকাকালীন দুই অক্ষর ক্রম: '\r\n'। এই সমস্ত তাত্ত্বিক খুব সুন্দর, কিন্তু আমার প্রশ্ন কেন ? উইন্ডোজ কেন গাড়ীর রিটার্ন চরিত্র অতিরিক্ত? যদি ইউনিক্স এটি করতে পারে তবে \nউইন্ডোজকে এটি করতে দুটি অক্ষর কেন লাগে?

আমি ডেভিড বেজলির পাইথন বইটি পড়ছি এবং তিনি বলেছেন:

উদাহরণস্বরূপ, উইন্ডোজে, '\ n' অক্ষরটি লিখলে আসলে দুটি অক্ষরের অনুক্রম '\ r \ n' আউটপুট হয় (এবং ফাইলটি পড়ার সময়, '\ r \ n' আবার একক '' n 'তে অনুবাদ হয় চরিত্র)।

অতিরিক্ত চেষ্টা কেন?

আমি সৎ হতে হবে। আমি পার্থক্যটি দীর্ঘকাল ধরে জানি কিন্তু কখনই জিজ্ঞাসা করতে বিরত হইনি। আমি আশা করি যে আজ উত্তর দেওয়া হয়েছে।

আপনার সময় জন্য ধন্যবাদ।


5
এটিও লক্ষ করা উচিত যে উইন্ডোজ শুধুমাত্র একমাত্র ব্যবহার করে না \r\n। এটি বেশিরভাগ পাঠ্য-ভিত্তিক ইন্টারনেট প্রোটোকল (যেমন এসএমটিপি, এইচটিটিপি, ইত্যাদি) দ্বারা উইন্ডোজ (যেমন ইতিহাস) এর মূলত একই কারণে ব্যবহৃত হয়।
ডিন হার্ডিং

3
এছাড়াও, জাভাতে থাকাকালীন এবং বিন্যাসের স্ট্রিংগুলি ব্যবহার করার সময় (যেমন System.out.printf()বা String.format()) %nওএসের সামঞ্জস্যের উদ্দেশ্যে আপনি নিজের সিআরএলএফ হিসাবে ব্যবহার করেছেন তা নিশ্চিত করুন । \nঅবচয় করা হয়।
গ্যারি রোয়ে

আমি \n\rবেশ কয়েকবার দেখেছি । (আমি মনে করি এটি
নেটওয়্যার


1
খুব কম উইন্ডোজ প্রোগ্রাম রয়েছে যার জন্য আসলে সিআরএলএফ প্রয়োজন। সিআরএলএফ ডিফল্ট হতে পারে তবে প্রায় সমস্ত কিছুই স্বয়ংক্রিয়ভাবে সনাক্ত করে এবং ঠিকঠাক এলএফ ব্যবহার করবে। উইন্ডোজটিতে আমার সমস্ত পাঠ্য সম্পাদকগুলি সমস্ত নতুন ফাইলের জন্য এলএফ ব্যবহার করার জন্য কনফিগার করেছেন এবং এটি আসলে কোনও সমস্যা নয়।
কেভিন

উত্তর:


124

অনুন্নত সহাবস্থানযোগ্যতা.

উইন্ডোজ এমএস-ডসগুলির সাথে পিছনে সামঞ্জস্যপূর্ণ (আক্রমণাত্মকভাবে তাই, এমনকি) এবং এমএস-ডস সিআর-এলএফ কনভেনশন ব্যবহার করেছে কারণ এমএস-ডস সিপি / এম -80 (কিছুটা দুর্ঘটনাক্রমে) এর সাথে সামঞ্জস্যপূর্ণ ছিল যা সিআর-এলএফ কনভেনশন ব্যবহার করেছিল কারণ আপনি কীভাবে একটি প্রিন্টার চালিত করেছিলেন (কারণ প্রিন্টারগুলি মূলত কম্পিউটার নিয়ন্ত্রিত টাইপরাইটার ছিল)।

মুদ্রকগুলির কাগজটিকে এক লাইনের উপরে একটি নতুন লাইনে স্থানান্তরিত করার জন্য পৃথক কমান্ড রয়েছে এবং গাড়িটি (যেখানে কাগজটি মাউন্ট করা হয়েছিল) ফিরে বাম প্রান্তরে ফেরত দেওয়ার জন্য একটি পৃথক কমান্ড রয়েছে।

এই জন্য. এবং, হ্যাঁ, এটি একটি বিরক্তিজনক, তবে এটি প্যাকেজ চুক্তির অংশ যা এমএস-ডসকে সিপি / এম এবং উইন্ডোজ 95 এর দ্বারা ডস শীর্ষে অন্য সমস্ত জিইউআইয়ের উপর জয়লাভ করতে সক্ষম হয়েছিল এবং উইন্ডোজ এক্সপি এর দায়িত্ব গ্রহণ করতে সক্ষম হয়েছিল উইন্ডোজ 98 থেকে।

(দ্রষ্টব্য: আধুনিক লেজার প্রিন্টারগুলির এখনও এই কমান্ড রয়েছে কারণ তারাও পূর্ববর্তী মুদ্রকগুলির সাথে পিছনের দিকে সামঞ্জস্যপূর্ণ - বিশেষত এইচপি এটি ভাল করে)

টাইপরাইটারদের সাথে অপরিচিতদের জন্য, এখানে একটি ভিডিও এখানে কীভাবে টাইপিং করা হয়েছিল তা দেখানো হয়েছে: http://www.youtube.com/watch?v=LJvGiU_UyEQ । লক্ষ্য করুন যে কাগজটি প্রথমে উপরে সরানো হয়েছে, এবং তারপরে গাড়িটি ফিরে আসে, এমনকি যদি এটি কোনও সরল চলাচলে ঘটে। ডিং টাইপস্টকে অবহিত করলেন যে শেষটি নিকটেই ছিল এবং এর জন্য প্রস্তুত হতে।


3
কীভাবে ইউনিক্স তার with n কেবলমাত্র সেই পুরানো দিনের মুদ্রকের সাথে কাজ করত? আমি ধরে নিই যে তারা কি টাইপ রাইটার টাইপ প্রিন্টারের সাথে ইউনিক্স কনসোলগুলি সংযুক্ত করেছে?
সেন্থিল কুমারান

3
@ সেন্থিল, ইউনিক্সে নতুন লাইনের চরিত্রটি শেষ ড্রাইভার দ্বারা রূপান্তরিত হয়। এটি কেবল একটি ভিন্ন ডিজাইনের সিদ্ধান্ত।

2
ইউনিক্স প্রিন্টার এবং টার্মিনালগুলিতে অপারেটিং সিস্টেমে @ সিংথিলটি সুনির্দিষ্টভাবে বলতে গেলে বিমূর্ত করা হয় এবং তাদের বিবরণটি নির্ধারণ করে যে ডিভাইসের জন্য কোন বাইট সিকোয়েন্স তৈরি করা হয়েছে। সিপি / এম এর এ জাতীয় কোনও বিমূর্ততা এটিকে সমস্ত প্রোগ্রাম চলমান রেখে দেয়নি - এটি সম্ভবত সম্ভবত কারণ এটি সমস্ত প্রোগ্রামের প্রয়োজন হয়নি তাই আবাসিক অপারেটিং সিস্টেমে এটি থাকা প্রোগ্রামগুলির থেকে মূল্যবান স্মৃতি হরণ করতে পারে। মনে রাখবেন সিপি / এম একটি 16 কিলোবাইট সিস্টেমের জন্য ডিজাইন করা হয়েছিল ।

1
"সুতরাং যুক্তিযুক্তভাবে বিশ্বের সবচেয়ে উন্নত পরিবহন ব্যবস্থা কীসের একটি প্রধান নকশা বৈশিষ্ট্যটি মূলত একটি ঘোড়ার পাছার প্রস্থ দ্বারা নির্ধারিত হয়েছিল।" এবং তাই এটি পাশাপাশি সফ্টওয়্যার। অ্যাস্ট্রোডিজিটাল.অর্গ
রায়ান

1
@ রায়ান, শহুরে কিংবদন্তি। এ debunked snopes.com/history/american/gauge.htm

20

আমি যতদূর জানি এই টাইপ রাইটারগুলির দিনগুলিতে ফিরে আসে।

\r ক্যারেজ রিটার্ন, যা আপনি পৃষ্ঠায় যেখানে টাইপ করছেন সেখানে বাম দিকে ফিরে যান (বা ডান যদি এটি আপনার সংস্কৃতি হয়)

\n এটি একটি নতুন লাইন, যা আপনার কাগজটিকে একটি লাইন উপরে নিয়ে যায়।

এগুলির মধ্যে কেবল একটি টাইপরাইটারে করা আপনাকে পাঠের নতুন লাইনটি লিখতে ভুল জায়গায় ফেলে দেবে।

কম্পিউটারগুলি আসার পরে আমি অনুমান করি যে কিছু লোক পুরানো মডেলটি রেখেছিল, তবে অন্যরা বুঝতে পেরেছিল যে এটি প্রয়োজনীয় নয় এবং একটি চরিত্র হিসাবে একটি সম্পূর্ণ নতুন লাইন সজ্জিত করে।


7
তাহলে উইন্ডোজ এখনও এটি আটকে না?
সুখবীর

8
অনুন্নত সহাবস্থানযোগ্যতা. এখনই পরিবর্তন হলে কত পাঠ্য নথি ভাঙ্গবে তা কল্পনা করুন
ম্যাট এলেন

4
কড়া কথায় বলতে গেলে, এখানে "অডবোল" হ'ল ইউনিক্সয়েড 'কেবলমাত্র নিউলাইন ব্যবহার করুন', প্রাথমিকভাবে সম্পন্ন (আমার বিশ্বাস) সঞ্চিত অক্ষরের সংখ্যা কম রাখার জন্য (সিআর এলএফ-তে অনুবাদ টার্মিনাল ড্রাইভারের মধ্যে করা হয়, এটি 'অন্লিকার' পতাকা) এটি আউটপুট জন্য এটি নিয়ন্ত্রণ করে
ভ্যাটাইন

3
উইন্ডোজের ডস নামে একটি প্রিডেসর ছিল, একই লাইন-এন্ডিং ছিল। উইন্ডোজ সামঞ্জস্য রেখেছিল। ডস-এর পূর্বসূরীরা স্বয়ং সিপি / এম ছিলেন। এটি সিআরএলএফও ব্যবহার করে। ডস সামঞ্জস্য রেখেছেন। সিপি / এম এর বিকাশ ডিইসি টপস দ্বারা প্রভাবিত হয়েছিল। এবং আপনি অনুমান করতে পারেন, তারা কোন লাইনেডিং ব্যবহার করেছিল। :-) সামঞ্জস্যতা অনেক কিছু ব্যাখ্যা করে।
মেনিমেথ

5
ঠিক আছে, তবে নোটপ্যাড এখনও "\ n" লাইনের সমাপ্তিগুলি স্বীকৃতি দেয় না কেন ?
dan04

8

আমি জানি না এটি সাধারণ জ্ঞান কিনা, তবে এটি লক্ষ করা উচিত যে সিআর এখনও আধুনিক টার্মিনাল এমুলেটর দ্বারা বোঝা গেছে:

$ printf "hey world\rsup\n"
sup world

এটি অগ্রগতি সূচকগুলির পক্ষে কার্যকর, যেমন

for i in {1..100}
do
    printf "\rLoading... %d%%" $i
    sleep 0.01
done
echo

1
পুরানো আইবিএম লাইন প্রিন্টারগুলিতে (উদাঃ, 1403), কনভেনশনটি লাইন বাফারের প্রথম অক্ষরটিকে ক্যারিজ নিয়ন্ত্রণের চরিত্র হিসাবে বিবেচনা করে। ফাঁকা বলতে বোঝায় একটি লাইন এগিয়ে এবং মুদ্রণ করা। প্লাস বলতে বোঝায় ব্যবধান বাদ দেওয়া এবং আন্ডারলাইন করার জন্য যেমন ব্যবহৃত হত। একটি শূন্য মানে দ্বিগুণ-স্পেস এবং ট্রিপল-স্পেস থেকে বিয়োগ করা। পরের পৃষ্ঠার শীর্ষে একটি '1' স্পেসযুক্ত এবং অন্যান্য সংখ্যাগুলি ব্যবহারকারী-সংজ্ঞায়িত উল্লম্ব অবস্থানগুলিতে উন্নত হয়েছিল (প্রাক-মুদ্রিত ফর্মগুলি পূরণ করতে ব্যবহৃত হয়)।
জর্জ

7

.তিহাসিকভাবে, লাইন ফিডের অর্থ প্লেট - রোলার যার উপরে আপনি টাইপ করেন - একটি লাইন ঘোরানো হয়েছিল, যার ফলে পরবর্তী লাইনে পাঠ্য প্রদর্শিত হবে ... তবে পরবর্তী কলামে।

ক্যারেজ রিটার্ন মানে "লাইনের শুরুতে আপনি যে বিটটি টাইপ করেন তা ফিরিয়ে দিন"।

উইন্ডোজ সিআর + এলএফ ব্যবহার করে কারণ এমএস-ডস করেছে, কারণ সিপি / এম করেছে, কারণ এটি সিরিয়াল লাইনের জন্য উপলব্ধি করেছে।

ইউনিক্স এর convention n সম্মেলনটি অনুলিপি করেছে কারণ মাল্টিক্স করেছে did

আমার সন্দেহ হয় যদি আপনি যথেষ্ট পিছনে খনন করেন তবে আপনি বাস্তবায়নকারীদের মধ্যে একটি রাজনৈতিক মতপার্থক্য খুঁজে পাবেন!

(আপনি অতিরিক্ত মজাদার বিট ছেড়ে গেছেন, যেখানে ম্যাক কনভেনশনটি (বা ব্যবহৃত হত) কেবল আলাদা লাইন পৃথক করতে সিআর ব্যবহার করতে পারেন And এবং এখন ইউনিকোডেরও নিজস্ব লাইন বিভাজক রয়েছে, ইউ + 2028!)


কি দারুন! ম্যাক সম্পর্কে জানতেন না ...
মাইকেল কে

আমি নিশ্চিত না যে আপনি একটি রাজনৈতিক মতবিরোধ পেয়ে যাবেন। এটিও সম্ভব যে আপনি লোকেরা স্বতন্ত্রভাবে একই রকম কাজ করতে দেখেন।
ডেভিড থর্নলি

1
জড়িত বিভিন্ন স্ট্যান্ডার্ড সংস্থা যখন? আমি রাজনৈতিক কারণ না পেয়ে অবাক হব!
ফ্রাঙ্ক শেয়ার

6

নিউলাইন চরিত্রের ইতিহাস (উইকিপিডিয়া):

এএসসিআইআই একই সাথে আইএসও এবং এএসএস, পূর্বসূরী সংস্থা এএনএসআই দ্বারা বিকাশ করা হয়েছিল। ১৯––-১৯68৮ সময়কালে, আইএসও খসড়া মানদণ্ডগুলি সিআর + এলএফ বা এলএফ উভয়কেই নতুন লাইন হিসাবে ব্যবহারের পক্ষে সমর্থন করেছিল, যখন এএসএ খসড়াগুলি কেবল সিআর + এলএফ সমর্থন করে।

ক্রম সিআর + এলএফ অনেকগুলি প্রাথমিক কম্পিউটার সিস্টেমে প্রচলিত ছিল যা টেলি টাইপ মেশিনগুলি গ্রহণ করেছিল, সাধারণত একটি এএসআর 33, একটি কনসোল ডিভাইস হিসাবে, কারণ এই সিকোয়েন্সটি একটি নতুন লাইনের শুরুতে prin প্রিন্টারগুলির অবস্থানের জন্য প্রয়োজনীয় ছিল। এই সিস্টেমগুলিতে, পাঠ্যগুলি নিয়মিতভাবে এই মুদ্রকগুলির সাথে সামঞ্জস্যপূর্ণ হিসাবে তৈরি করা হত, যেহেতু অ্যাপ্লিকেশন থেকে এই জাতীয় হার্ডওয়্যার বিবরণ গোপন করার জন্য ডিভাইস ড্রাইভারদের ধারণাটি এখনও ভালভাবে বিকশিত হয়নি; অ্যাপ্লিকেশনগুলিকে সরাসরি টেলি টাইপ মেশিনে কথা বলতে হয়েছিল এবং এর সম্মেলনগুলি অনুসরণ করতে হয়েছিল।

দুটি ক্রিয়াকলাপের পৃথকীকরণটি এই সত্যটি গোপন করে যে মুদ্রণ শিরোনামটি এক-চরিত্রের সময়ে পরবর্তী লাইনের শুরুতে ডানদিকে থেকে ফিরে আসতে পারে না। সে কারণেই ক্রমটি সর্বদা প্রথমে সিআরের সাথে প্রেরণ করা হত। প্রকৃতপক্ষে, বাম প্রান্তরে যাওয়ার জন্য মুদ্রণ শিরোনাম সময় দেওয়ার জন্য প্রায়শই অতিরিক্ত অক্ষর (বহিরাগত সিআর বা NU গুলি, যা উপেক্ষা করা হয়) প্রেরণ করা প্রয়োজন।

এমনকি টেলি টাইপগুলি কম্পিউটারের টার্মিনালগুলিকে উচ্চ বাউড রেট সহ প্রতিস্থাপন করার পরেও, অনেক অপারেটিং সিস্টেমগুলি এখনও স্বল্প টার্মিনালের সাথে সামঞ্জস্যের জন্য এই ভরাট অক্ষরগুলি স্বয়ংক্রিয়ভাবে প্রেরণকে সমর্থন করে যার জন্য প্রদর্শনটি স্ক্রোল করার জন্য একাধিক অক্ষরের সময় প্রয়োজন required

এমএস-ডস (1981) সিপি / এম এর সিআর + এলএফ গ্রহণ করেছে; সিআর / এম এর সিআর + এলএফ ব্যবহার সিরিয়াল লাইনের মাধ্যমে কম্পিউটার টার্মিনালগুলি ব্যবহারের জন্য উপলব্ধি করে। এই সম্মেলনটি মাইক্রোসফ্টের পরবর্তী উইন্ডোজ অপারেটিং সিস্টেম দ্বারা উত্তরাধিকার সূত্রে প্রাপ্ত হয়েছিল।

মাল্টিক্স অপারেটিং সিস্টেমটি 1964 সালে বিকাশ শুরু করে এবং এলএফকেই এটির নতুন লাইন হিসাবে ব্যবহার করে। ইউনিক্স মাল্টিক্স অনুশীলন অনুসরণ করেছিল এবং পরবর্তী ব্যবস্থাগুলি ইউনিক্স অনুসরণ করেছিল।


পুরানো আইবিএম 2741 প্রিন্টার-কীবোর্ড টার্মিনালে, প্রিন্টারের উপাদানটি ছিল আইবিএম সিলেক্ট্রিক বাউন্সিং টাইপ বল টাইপরাইটার। বড় হাতের অক্ষরে পরিবর্তনের ফলে অতিরিক্ত সময় নিয়ে বলটি আবর্তিত হয়েছিল। EBCDIC অক্ষর কোডে, বড় হাতের অক্ষরগুলির 1-বিট অবস্থান ছিল! সুতরাং, একটি EBCDIC ফাঁকা (0x40) বড় হাতের অক্ষর ছিল! আপনি যদি একটি দীর্ঘ ডক মুদ্রণ করছিলেন (যেমন, একটি থিসিস), আপনি বস্তুগতভাবে NULs বা ছোট হাতের ফাঁকা অংশের মধ্যে ছোট হাতের শব্দের মধ্যে ফাঁকা অনুবাদ করে আউটপুট গতি বাড়িয়ে তুলতে পারেন (তারা আলাদা অক্ষর ব্যবহার করেছিল, IL যদি মেমরি পরিবেশন করে, প্রয়োজনীয় বিলম্ব প্রবর্তন করতে, যেমন , ফিরে বা ট্যাবিংয়ের সময়)।
জর্জ

5

লোকেরা "ইউনিক্স কেন করতে পারে \nএবং উইন্ডোজ না কেন" জিজ্ঞাসা করে এটি কী ? এতো অদ্ভুত প্রশ্ন।

  1. এটির সাথে OS এর প্রায় কিছুই করার নেই। অ্যাপস, লাইব্রেরি, প্রোটোকল এবং ফাইল ফর্ম্যাট কীভাবে জিনিসগুলি মোকাবেলা করে তা আরও বিষয়। ওএস পাঠ্য-ভিত্তিক কনফিগারেশন বা কমান্ড লাইন কমান্ডগুলি যেখানে পড়ে / লিখেছে, সেগুলি ব্যতীত ওএসকে দোষ দেওয়ার কোনও মানে হয় না।
  2. বেশিরভাগ উইন্ডোজ অ্যাপ্লিকেশন উভয়ই পড়তে পারে\n এবং \r\nঠিক আছে। তারা আউটপুট \r\nযাতে সবাই খুশি। একটি প্রোগ্রাম কেবল না "do" নেই পারেন \nবা \r\n- এটা গ্রহণ করে এক, অন্যান্য, অথবা উভয়, এবং আউটপুট এক, অন্যান্য, অথবা উভয়।
  3. প্রোগ্রামার হিসেবে এই সত্যিই প্রায় উচিত না তোমাকে বিরক্ত। কার্যত প্রতিটি ভাষা / প্ল্যাটফর্মের সঠিক শেষ-লাইনটি লেখার এবং সবচেয়ে দৃ rob়তার সাথে পড়ার সুবিধা রয়েছে। আমি যখন এইচটিটিপি সার্ভারটি লিখেছিলাম তখন কেবলমাত্র সমস্যার সাথে মোকাবিলা করতেই হয়েছিল - এবং এটি কারণ ছিল যে কোনও নির্দিষ্ট ব্রাউজার (ইঙ্গিত: আইআই পরবর্তী পরবর্তী জনপ্রিয় ব্রাউজার) সঠিক\n পরিবর্তে করছিল । \r\n
  4. আরও অনেক প্রাসঙ্গিক প্রশ্ন হ'ল কেন এতগুলি আধুনিক ইউনিক্স অ্যাপ্লিকেশন কেবল \nপুরোপুরিভাবে জানে যে কিছু প্রোটোকল এবং প্রোগ্রামগুলি এটি পছন্দ করে না?

3
অন্য প্রাসঙ্গিক প্রশ্ন: যেহেতু অনেকগুলি প্রোটোকল মূলত ইউনিক্স সিস্টেমে তৈরি হয়েছিল, কেন তারা '' n 'ব্যবহার করল না?
ডেভিড থর্নলি

@ ডেভিডথর্নলি কারন \ r \ n ক্রস-প্ল্যাটফর্মের কাজ করার সম্ভাবনা বেশি (পুরানো ম্যাকসের জন্য \ r, উইন্ডোজগুলির জন্য \ r \ n এবং * নিক্সের জন্য। N)।
বেসিক

4

কনভেনশনগুলি তাদের বিভিন্ন সিস্টেমে (un n ইউনিক্স টাইপ সিস্টেমে, উইন্ডোজ ইত্যাদিতে \ r etc এন) ধরে রাখার কারণ হ'ল একবার আপনি কোন সম্মেলনটি বেছে নিলে আপনি লোকের ফাইলগুলির একগুচ্ছ ভেঙে তা পরিবর্তন করতে পারবেন না। এবং এটি সাধারণত ভ্রান্ত হয়।

ইউনিক্স ধরণের সিস্টেমগুলি বিভিন্ন মডেলের টেলি টাইপ ব্যবহার করে (খুব প্রারম্ভিক দিনগুলি) বিকাশ করা হয়েছিল এবং এক পর্যায়ে কেউ সিদ্ধান্ত নিয়েছে যে কোনও লাইন ফিড দিলে সরঞ্জামগুলি গাড়ি চালানো উচিত।

উইন্ডোজ ডস থেকে এসেছে, তাই উইন্ডোজের জন্য প্রশ্নটি আসলে: ডস কেন এই সিআর / এলএফ ক্রম ব্যবহার করেছিল? আমি অনুমান করছি সিপি / এম এর সাথে এর কিছু করার আছে, যেখানে ডসের এর কিছু শিকড় রয়েছে। আবার, টেলি টাইপের নির্দিষ্ট মডেলগুলির ভূমিকা থাকতে পারে।


হুঁ মজার।
সুখবীর

1
উইন্ডোজ কেন হ্যান্ডলাইনগুলি শেষ হতে পারে না \n, তবে \r\nআপাতত ব্যবহার চালিয়ে যেতে পারে ? যদি তারা এটি উইন্ডোজ এক্সপি দিয়ে শুরু করে থাকে তবে তারা এখন \nপরিবর্তে ফাইল সংরক্ষণ শুরু করতে পারে \r\n
অসন্তুষ্ট গোয়াট

1
উইন্ডোজ এর সাথে কিছুই করার নেই। এটি অ্যাপ্লিকেশনগুলির সিদ্ধান্ত, এবং বেশিরভাগ অ্যাপ্লিকেশনগুলি '\ n' এবং '\ r \ n' উভয়ই পড়বে এবং '\ r \ n' লিখবে - তাই সবাই খুশি।
রে মিয়াসাকা

2

মাইক্রোসফ্ট - সেরা উত্স থেকে একটি উত্তর এখানে। লাইন টার্মিনেটর সিআর + এলএফ কেন?

এই প্রোটোকল টেলি টাইপ রাইটারদের দিন থেকে শুরু করে। সিআর বলতে "ক্যারেজ রিটার্ন" বোঝায় - সিআর কন্ট্রোল অক্ষর কাগজটি অগ্রগতি না করে মুদ্রণ শিরোনাম ("ক্যারিজ") 0 কলামে ফিরিয়ে দেয়। এলএফ এর অর্থ দাঁড়ায় "লাইনফিড" - এলএফ নিয়ন্ত্রণের চরিত্রটি মুদ্রণ শিরোনাম ছাড়াই কাগজের এক লাইনে উন্নত করে। সুতরাং আপনি যদি মুদ্রণ শিরোনামটি কলাম শূন্যে (পরবর্তী পংক্তিতে প্রিন্ট করার জন্য প্রস্তুত) ফিরে আসতে চান এবং কাগজটি অগ্রসর করতে চান (সুতরাং এটি তাজা কাগজে প্রিন্ট করা হয়), আপনার সিআর এবং এলএফ উভয়ই দরকার।

আপনি যদি বিভিন্ন ইন্টারনেট প্রোটোকল ডকুমেন্টগুলিতে যান, যেমন আরএফসি 0821 (এসএমটিপি), আরএফসি 1939 (পিওপি), আরএফসি 2060 (আইএমএপি), বা আরএফসি 2616 (এইচটিটিপি), আপনি দেখতে পাবেন যে তারা সকলেই সিআর + এলএফ নির্দিষ্ট করে লাইন সমাপ্তি ক্রম সুতরাং আসল প্রশ্নটি "সিপি / এম, এমএস-ডস এবং উইন 32 লাইন টার্মিনেটর হিসাবে সিআর + এলএফ ব্যবহার করবেন না কেন?" তবে বরং "কেন অন্যান্য লোকেরা এই মানদণ্ডের নথি থেকে পৃথক হয়ে অন্য কিছু লাইন টার্মিনেটর ব্যবহার করে?"

ইউনিক্স সরল এলএফকে লাইন সমাপ্তির ক্রম হিসাবে গ্রহণ করেছে। আপনি যদি স্টটি বিকল্পগুলির দিকে নজর রাখেন, আপনি দেখতে পাবেন যে onlcr বিকল্পটি নির্দিষ্ট করে যে কোনও এলএফকে সিআর + এলএফতে পরিবর্তন করা উচিত। যদি আপনি এই সেটিংটি ভুল হয়ে থাকেন তবে আপনি সিঁড়ির পাঠ্য পাবেন, যেখানে

each
    line
        begins

যেখানে আগের লাইনটি ছেড়ে গেছে এমনকি ইউনিক্স, যখন কাঁচা মোডে ছেড়ে যায়, লাইনগুলি বন্ধ করতে সিআর + এলএফ প্রয়োজন। এলএফ-এর আগে অন্তর্নিহিত সিআর হ'ল এক ইউনিট আবিষ্কার, সম্ভবত অর্থনীতি হিসাবে, যেহেতু এটি প্রতি লাইনে একটি বাইট সংরক্ষণ করে।

সি ভাষার ইউনিক্স পূর্বসূরি এই কনভেনশনটিকে সি ভাষার মান হিসাবে চালিত করে, যার জন্য লাইনগুলি সমাপ্ত করার জন্য কেবল "\ n" (যা এলএফ এনকোড করে) প্রয়োজন, কাঁচা ফাইল ডেটাটিকে যৌক্তিক লাইনে রূপান্তর করতে রানটাইম লাইব্রেরিতে বোঝা চাপিয়ে দেয়।

সি ভাষা "জেনেরিক লাইন টার্মিনেটর" ধারণাটি প্রকাশ করতে "নিউলাইন" শব্দটিও চালু করেছিল। আমাকে বলা হয়েছে যে এএসসিআইআই কমিটি ১৯৯৯ সালের দিকে 0x0A চরিত্রের নাম পরিবর্তন করে "নিউলাইন" করে দেয়, তাই বিভ্রান্তির মাত্রা আরও উচ্চতর করা হয়েছিল।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.