What is lf and crlf
Content on WhatAnswers is provided "as is" for informational purposes. While we strive for accuracy, we make no guarantees. Content is AI-assisted and should not be used as professional advice.
Last updated: April 1, 2026
Key Facts
- LF is a single character (ASCII 10) that moves to the next line; CRLF combines carriage return (ASCII 13) and line feed
- LF is the standard on Unix, Linux, macOS, and most modern systems; CRLF is standard on Windows
- Line ending differences rarely affect readability but can cause version control conflicts and build failures
- Git and code editors can be configured to handle line endings automatically with gitattributes or settings
- CR (carriage return alone) is an obsolete line ending format used only on older Macintosh systems
Overview
LF and CRLF are two different ways of representing line breaks in text files. This seemingly trivial difference stems from the history of computer hardware and has surprisingly significant implications for modern development. Understanding line endings is essential for developers working across different operating systems or in collaborative projects.
The History
These line ending formats originated from teletype machines and early computer terminals. A carriage return (CR) physically returned the printhead to the left margin, while a line feed (LF) advanced the paper to the next line. On early systems, you needed both characters to complete a line break. When personal computers emerged, different manufacturers chose different approaches. Unix-like systems adopted LF alone, while DOS and Windows retained both CR and LF.
Technical Differences
LF (Line Feed): Uses a single byte (ASCII 10, represented as \n) to mark line endings. Requires 1 byte per line break.
CRLF (Carriage Return + Line Feed): Uses two bytes (ASCII 13 + ASCII 10, represented as \r\n) to mark line endings. Requires 2 bytes per line break.
CR (Carriage Return): A historical format using only ASCII 13, rarely encountered in modern systems.
Operating System Standards
Different operating systems default to different line endings:
- Linux and Unix: LF (\n)
- macOS: LF (\n) since OS X
- Windows: CRLF (\r\n)
- Old Mac OS: CR (\r) — now obsolete
Why It Matters
Files with inconsistent line endings can cause problems in version control systems like Git, which may report every line as changed. Cross-platform teams often encounter merge conflicts due to line ending differences. Build systems, linters, and shell scripts may malfunction with unexpected line endings. Modern text editors and IDEs typically handle line endings transparently, but understanding them prevents subtle bugs in automated systems.
Managing Line Endings
Developers use `.gitattributes` files to normalize line endings across teams. Many code editors include settings to automatically convert line endings. Tools like `dos2unix` and `unix2dos` can convert between formats. Version control systems like Git can be configured with `core.autocrlf` to handle conversion automatically.
| Feature | LF (Line Feed) | CRLF (Carriage Return + Line Feed) |
|---|---|---|
| ASCII Code | 10 (\n) | 13 + 10 (\r\n) |
| Bytes Per Line | 1 byte | 2 bytes |
| Primary OS | Unix, Linux, macOS | Windows |
| File Size Impact | Smaller files | Slightly larger files |
| Compatibility | Modern systems | Windows-focused systems |
Related Questions
How do I convert LF to CRLF?
Use tools like `dos2unix` or `unix2dos` command-line utilities, or configure your text editor to convert on save. Git can automate this with `core.autocrlf=true`. Many IDEs also offer line ending conversion in settings.
What is .gitattributes used for?
.gitattributes is a Git configuration file that defines how files should be handled. It's commonly used to enforce consistent line endings across teams using the `eol` setting, preventing conflicts from line ending differences.
Do line endings affect code execution?
Generally no, modern systems handle line endings transparently. However, shell scripts, Windows batch files, and some legacy systems may fail with unexpected line endings. Build tools and linters may also report false errors.
More What Is in Daily Life
Also in Daily Life
More "What Is" Questions
Trending on WhatAnswers
Browse by Topic
Browse by Question Type
Sources
- Wikipedia - NewlineCC-BY-SA-4.0
Missing an answer?
Suggest a question and we'll generate an answer for it.