Saya pikir \n menggerakkan jarum ke bawah, dan \r memindahkan jarum ke awal baris (rata kiri)? Saya tidak yakin, meskipun
Ini benar, kurang lebih, tetapi sebagian besar merupakan keingintahuan sejarah. Awalnya, linefeed (LF) digunakan untuk memajukan kertas satu baris pada printer dan terminal hardcopy (teleprinter); carriage return (CR) mengembalikan print head ke awal baris.
Ini mungkin masih berfungsi pada printer modern saat digunakan dalam "mode teks", tetapi sebaliknya tidak terlalu relevan saat ini.
Lagi pula, saya diberitahu bahwa Windows dan Linux menangani baris baru dan carriagereturn secara berbeda.
Perbedaannya sederhana:perancang OS harus memilih cara merepresentasikan awal baris baru dalam teks di file komputer. Untuk berbagai alasan historis, di dunia Unix/Linux, satu karakter LF dipilih sebagai penanda baris baru; MS-DOS memilih CR+LF, dan Windows mewarisinya. Dengan demikian, platform yang berbeda menggunakan konvensi yang berbeda.
Dalam praktiknya, ini menjadi masalah yang semakin berkurang. Penanda baris baru benar-benar hanya relevan untuk pogram yang memproses "teks biasa", dan jumlahnya tidak banyak - sebagian besar hanya memengaruhi kode sumber program, file konfigurasi, dan beberapa file teks sederhana dengan dokumentasi. Saat ini sebagian besar program yang menangani jenis file ini (editor, kompiler, dll.) dapat menangani kedua konvensi baris baru, jadi apa pun yang Anda pilih.
Ada beberapa kasus di mana alat bersikeras pada konvensi baris baru "mereka" (mis. Skrip shell Unix tidak boleh menggunakan CR+LF), dalam hal ini Anda harus menggunakan yang benar.
CR dan LF
American Standard Code for Information Interchange (ASCII) mendefinisikan karakter kontrol termasuk CARRIAGE-RETURN (CR) dan LINE-FEED (LF) yang dulu (dan masih) digunakan untuk mengontrol posisi cetak pada printer dengan cara yang analog dengan mesin tik mekanis yang mendahului printer komputer awal.
Ketergantungan platform
Di Windows pemisah baris tradisional dalam file teks adalah CR diikuti oleh LF
Di sistem Apple Macintosh lama (sebelum OSX), pemisah baris tradisional dalam file teks adalah CR
Di Unix dan Linux, pemisah baris tradisional dalam file teks adalah LF.
\n dan \r
Dalam banyak bahasa pemrograman dan skrip \n
berarti "baris baru". Terkadang (tetapi tidak selalu) ini berarti karakter ASCII LINE-FEED (LF), yang, seperti yang Anda katakan, memindahkan kursor (atau posisi cetak) ke bawah satu baris. Di printer atau mesin tik, ini sebenarnya akan memindahkan kertas ke atas satu baris.
Selalu \r
berarti karakter ASCII CARRIAGE-RETURN (CR) yang namanya sebenarnya berasal dari mesin tik mekanik dimana terdapat kunci carriage-return yang menyebabkan roller ("carriage") yang membawa kertas bergerak ke kanan, ditenagai oleh pegas, seperti sejauh itu akan pergi. Dengan demikian mengatur posisi pengetikan saat ini ke margin kiri.
Pemrograman
Dalam beberapa bahasa pemrograman \n
dapat berarti urutan karakter yang bergantung pada platform yang mengakhiri atau memisahkan baris dalam file teks. Misalnya di Perl, print "\n"
menghasilkan urutan karakter yang berbeda di Linux daripada di Windows.
Di Java, praktik terbaik, jika Anda ingin menggunakan akhiran baris asli untuk platform runtime, jangan menggunakan \n
atau \r
sama sekali. Anda harus menggunakan System.getProperty("line.separator")
. Anda harus menggunakan \n
dan \r
di mana Anda menginginkan LF dan CR apa pun platformnya (mis. seperti yang digunakan dalam HTTP, FTP, dan protokol komunikasi Internet lainnya).
Unix stty
Dalam shell Unix, stty
perintah dapat digunakan untuk menyebabkan shell menerjemahkan antara berbagai konvensi ini. Misalnya stty -onlcr
akan menyebabkan shell selanjutnya menerjemahkan semua LF yang keluar ke CR LF.
Linux dan OSX mengikuti konvensi Unix
File teks
File teks masih sangat penting dan banyak digunakan. Misalnya, HTML dan XML adalah contoh file teks. Sebagian besar protokol Internet penting, seperti HTTP, mengikuti konvensi file teks dan menyertakan spesifikasi untuk akhiran baris.
Printer
Sebagian besar printer selain yang paling murah, masih menghargai CR dan LF. Bahkan mereka adalah dasar untuk bahasa deskripsi halaman yang paling banyak digunakan - PCL dan Postscript.
Singkatnya, diperlukan untuk printer, tetapi sekarang OS melakukannya sedikit berbeda. Dalam kebanyakan kasus, tidak apa-apa melakukan CR dan LF dengan melakukan \r\n
dan dalam kebanyakan kasus, ini akan berfungsi dengan baik.