verschil tussen CR LF, LF- en CR-lijnvakanties?

Ik zou graag het verschil willen weten (met voorbeelden indien mogelijk) tussen CR LF (Windows), LF (UNIX) en CR (Macintosh) lijnbraaktypen.


Antwoord 1, Autoriteit 100%

Het is echt zo ongeveer welke bytes worden opgeslagen in een bestand. CRis een bypecode voor wagenrendement (uit de dagen van typemachines) en LFop dezelfde manier, voor lijnvoeding. Het verwijst gewoon naar de bytes die worden geplaatst als eind-of-line markers.

Way Meer informatie, zoals altijd, op wikipedia .


Antwoord 2, Autoriteit 201%

CR en LF zijn regelkarakters, respectievelijk gecodeerd 0x0D(13 decimaal) en 0x0A(10 decimaal).

Ze worden gebruikt om een ​​lijnonderbreking in een tekstbestand te markeren. Zoals u aangeeft, gebruikt Windows twee tekens de CR LF-sequentie; Unix gebruikt alleen LF en de oude MacOS (Pre-OSX Macintosh) gebruikte CR.

een apocriefen historisch perspectief:

zoals aangegeven door Peter , CR = Carriage Return en LF = Line Voeding , twee uitingen hebben hun wortels in de oude typemachine / tty. LF verplaatste het papier (maar hield de horizontale positie identiek) en CR bracht de “wagen” terug, zodat het volgende getypte teken op de linkse positie op het papier (maar op dezelfde lijn) zou zijn. CR + LF deden beide, d.w.z. het voorbereiden om een ​​nieuwe regel te typen. Naarmate de tijd door de fysieke semantiek van de codes is gegaan, waren niet van toepassing, en als geheugen- en diskette-schijfruimte waren in een premie, sommige OS-ontwerpers besloten om alleen een van de personages te gebruiken, ze communiceren gewoon niet heel goed met elkaar. -)

De meeste moderne teksteditors en tekstgeoriënteerde applicaties bieden opties/instellingen enz. waarmee de end-of-line-conventie van het bestand automatisch kan worden gedetecteerd en dienovereenkomstig kan worden weergegeven.


Antwoord 3, autoriteit 92%

Dit is een goede samenvatting die ik heb gevonden:

Het teken Carriage Return (CR) (0x0D, \r) verplaatst de cursor naar het begin van de regel zonder naar de volgende regel te gaan. Dit teken wordt gebruikt als een nieuw regelteken in Commodore en Early Macintosh-besturingssystemen (OS-9 en eerder).

Het teken Line Feed (LF) (0x0A, \n) verplaatst de cursor naar de volgende regel zonder terug te keren naar het begin van de regel. Dit teken wordt gebruikt als een nieuw regelteken in op UNIX gebaseerde systemen (Linux, Mac OSX, enz.)

De End of Line (EOL) reeks (0x0D 0x0A, \r\n) bestaat eigenlijk uit twee ASCII-tekens, een combinatie van de CR- en LF-tekens. Het verplaatst de cursor zowel naar beneden naar de volgende regel als naar het begin van die regel. Dit teken wordt gebruikt als een nieuw regelteken in de meeste andere niet-Unix-besturingssystemen, waaronder Microsoft Windows, Symbian OS en andere.

Bron


Antwoord 4, autoriteit 47%

Omdat er geen antwoord is waarin alleen dit wordt vermeld, beknopt samengevat:

Carriage Return(MAC pre-OSX)

  • CR
  • \r
  • ASCII-code 13

Regelfeed(Linux, MAC OSX)

  • LF
  • \n
  • ASCII-code 10

Carriage Return en Line Feed(Windows)

  • CRLF
  • \r\n
  • ASCII-code 13 en vervolgens ASCII-code 10

Als je ASCII-code in een vreemd formaat ziet, zijn het alleen de getallen 13 en 10 in een andere radix/grondtal, meestal grondtal 8 (octaal) of grondtal 16 (hexadecimaal).

http://www.bluesock.org/~willg/dev/ascii. html


Antwoord 5, autoriteit 12%

Jeff Atwood heeft hier een recente blogpost over: The Great Newline Schism

Hier is de essentie van Wikipedia:

De sequentie CR+LF was algemeen gebruikt
op veel vroege computersystemen die
teletypemachines hadden aangenomen,
typisch een ASR33, als console
apparaat, omdat deze volgorde was
nodig om die printers te plaatsen op
het begin van een nieuwe regel. Op deze
systemen, tekst was vaak routinematig
samengesteld om compatibel te zijn met deze
printers, aangezien het concept van apparaat
stuurprogramma’s die dergelijke hardwaredetails verbergen
van de applicatie was nog niet goed
ontwikkelde; toepassingen moesten praten
rechtstreeks naar de teletypemachine en
zijn conventies volgen. De scheiding
van de twee functies verborgen de
feit dat de printkop niet kon
terugkeer van uiterst rechts naar de
begin van de volgende regel in
tijd van één teken. Dat is waarom de
sequentie werd altijd verzonden met de CR
eerst. In feite was het vaak nodig
om extra tekens te verzenden (vreemde
CR’s of NUL’s, die worden genegeerd) om
geef de printkop de tijd om naar
de linkermarge.
Zelfs na teletypes
werden vervangen door computerterminals
met hogere baudrates, veel operationele
systemen nog steeds ondersteund automatisch
verzenden van deze opvultekens, voor
compatibiliteit met goedkopere terminals
waarvoor meerdere tekentijden nodig waren
om door het scherm te scrollen.


Antwoord 6, autoriteit 4%

CR – ASCII-code 13

LF – ASCII-code 10.

Theoretisch brengt CR de cursor terug naar de eerste positie (aan de linkerkant). LF voert één regel in en verplaatst de cursor één regel naar beneden. Dit is hoe je vroeger printers en tekst-mode monitoren bestuurde.
Deze tekens worden meestal gebruikt om het einde van regels in tekstbestanden te markeren.
Verschillende besturingssystemen gebruikten verschillende conventies. Zoals je al zei, gebruikt Windows een CR/LF-combinatie, terwijl Macs van vóór OSX alleen CR gebruiken, enzovoort.


Antwoord 7, autoriteit 2%

Systemen gebaseerd op ASCII of a
compatibele tekenset gebruik ofwel LF
(Lijnvoeding, 0x0A, 10
in decimaal) of CR (Carriage return, 0x0D, 13 in decimaal)
individueel, of CR gevolgd door
LF (CR+LF, 0x0D 0x0A);
Deze tekens zijn gebaseerd op printeropdrachten: De regelinvoer
gaf aan dat een regel van
papier moet uit de printer worden gevoerd en een regelterugloop
gaf aan dat de printer
wagen moet terugkeren naar het begin van de huidige regel.

Hier zijn de details.


Antwoord 8

De trieste toestand van “recordscheidingstekens” of “lijnterminators” is een erfenis van de donkere eeuwen van de computerindustrie.

We gaan er nu van uit dat alles wat we willen weergeven op de een of andere manier gestructureerde gegevens is en voldoet aan verschillende abstracties die regels, bestanden, protocollen, berichten, opmaak, wat dan ook definiëren.

Maar ooit was dit niet helemaal waar. Toepassingen ingebouwde controle karakters en apparaat-specifieke verwerking. De hersendode systemen die zowel CR als LF vereisten, hadden eenvoudigweg geen abstractie voor recordscheiders of lijnterminators. De CR was nodig om de teletype of videodisplay terug te laten keren naar kolom één en de LF (vandaag, NL, zelfde code) was nodig om hem door te laten gaan naar de volgende regel. Ik denk dat het idee om iets anders te doen dan de onbewerkte gegevens naar het apparaat te dumpen te complex was.

Unix en Mac hebben eigenlijk een abstractiegespecificeerd voor het einde van de regel, stel je voor. Helaas hebben ze verschillende gespecificeerd. (Unix, ahem, kwam eerst.) En natuurlijk gebruikten ze een controlecode die al “dicht bij” S.O.P. was.

Aangezien bijna al onze huidige besturingssoftware een afstammeling is van Unix-, Mac- of MS-besturingssoftware, zitten we vast aan de regel die verwarring beëindigt.


Antwoord 9

NL is afgeleid van EBCDIC NL = x’15’, wat logisch vergelijkbaar is met CRLF x’odoa ascii… dit wordt duidelijk wanneer gegevens fysiek worden verplaatst van mainframes naar midrange. In de volksmond (zoals alleen mysterieuze mensen ebcdic gebruiken) is NL gelijkgesteld met CR of LF of CRLF

Other episodes