See Extended Backus-Naur Form.
[#errlevar]: ERRORLEVEL

In DOS, a batch file could contain the text “IF ERRORLEVEL 255 ”, followed by a command. The specified ERRORLEVEL number (which is 255 in this example) is the minimum ERRORLEVEL to allow the command to run. Essentially, this stynax translates to, “if the most recent exit code is a value of at least the specified number of 255”, a.k.a. “if the ERRORLEVEL is 255 or higher”...

Therefore, ldquo;IF ERRORLEVEL 0” had really no meaning (because the ERRORLEVEL is always zero or higher). All other checks for specific ERRORLEVEL values were to be done in descending order (checking first for higher numbered ERRORLEVEL values, and then checking for lower-numbered ERRORLEVEL values). (Choice/? in Vista shows, “When you use ERRORLEVEL parameters in a batch program, list” “them in decreasing order.

[#errlevel]: error level

In some operating systems (including Unix, and DOS, and popular successors of those operating systems), when a program cleanly exits, an integer called the “error level” may be set by the program as the program is letting the operating system know that the program is done running. The operating system then keeps track of the error level, and performs any other tasks related to the program closing (such as reclaiming the memory that the program had been using).

An “error level” is also known as an “exit code” or a “return value”, or perhaps some other variations involving both the first word of “error”, “exit”, or “return” and then having that first word be followed by either “level”, “code”, or “value”. Another common variation is to see “errorlevel” written out as one word, possibly related to the ERRORLEVEL from MS-DOS.

A program's exit code is a return value. (The term “return value” can also be used in other scenarios. While a program is running, a subroutine/procedure/function that completes may set a “return value” which may be checked by another portion of the program's code.)

The term “error level” comes from the notion that the program's exit code is often used as a method to communicate that there was a problem.

The program may also output the errors using some other method as well. The advantage of an exit code is that it is often an easy way for an automated process to determine whether a program detected a noteworthy problem. This can help allow an easy method for an automated task to be able to handle and/or report certain problems.

Specifically, it is quite common for an error level of zero to indicate that there were zero problems (worth reporting), and any other value may indicate that at least one noteworthy problem occurred. The value used may often help indicate what kind of problem(s) occurred.

Note that if a program's error level is going to be used, then the error level may need to be checked or stored immediately before running any other commands, because other commands may then set a new value for the error level. In many cases, this can be effectively done by setting a new environment variable to whatever the errorlevel is. In some older versions of DOS, that may be a bit harder, as noted by the section about the ERRORLEVEL in DOS.

In Unix, the error level is typically stored in an environment variable that has a name of a single question mark. Since environment variables are typically prefaced with a dollar sign in Unix environments, it may often be referred to as “$?”. In modern versions of Microsoft Windows, the command line interpretor may routinely set the “ERRORLEVEL” environment variable. The section about Operating system environment variables has more details about working with these values.

[#ethernet]: Ethernet

Ethernet generally refers to networking technology which was standardized with the &lrdquo;IEEE 802.3” standard. The term essentially refers to the signaling protocol that determines what signals are sent over the media. Data transmitted using Ethernet is transmitted inside of an Ethernet “frames”, which is basically a standardized collection of data including details such as the addresses of the devices that are communicating on the network. Sometimes the term “Ethernet” is used to distinguish between an older standard called “Ethernet”, which is limited to 10Mbps, and the faster standards that replaced it, including “Fast Ethernet” which referred to the 100Mbps speed (even though there are now newer standards, such as 10GbE (Ten Gigabit Ethernet), and the 100Mbps speed of “Fast Ethernet” may be a speed that many people no longer consider to be quick).

Sometimes the term “Ethernet” may be used to reference a wired network that uses CAT5e cabling (or similar, like CAT5 or CAT6) and probably “RJ45”-like 8P8C connectors, distinguisihing such a network from wireless networking, or perhaps even being used to distinguish Ethernet wired networking from other networking methods (like those using fiber cables or dial-up modems). However, that terminology is generally not advisable as preferred termonology, because there are other networking technologies, most notably Token Ring, which has been known to use the same sort of physical connections. The most technically accurate usage would be that Ethernet refers to how signaling information transmits the data, and so older 10BASE5 wiring was also truly Ethernet.

An Ethernet address may refer to a NIC's link-layer address written in non-canonical form. (The fact this is non-canonical is documented in the first sentence of RFC 2469: Caution (regarding canonical bit ordering): section 2 (“Canonical Form”).)


A field in Ethernet frames which identifies a protocol. This is similar to what the “port number” field does in a TCP or UDP frame. See: EtherType.

[#eui]: Extended Unique Identifier (“EUI”)
[#euicanon]: Canonical form
This information has moved: see Canonical form

Information has moved from this section to the section about a(n) EUI-48/MAC-48 address.


See: EUI addresses.

[#exclsvor]: “exclusive OR”/“excusive or”
See XOR.
[#ebnf]: Extended Backus-Naur Form (“EBNF”)

EBNF is a commonly used method to describe rules about what may be contained in a string of characters. This may be used to describe what sort of command line parameters are accepted by a program, or what sort of information may be sent by a program that is implementing a specific communications protocol.

For some further information about this notation, some options may include: Wikiepdia's article on Extended Backus-Naur Form (“EBNF”), Sudoers Manual: section called “Quick Guide to EBNF” (OpenBSD man page for /etc/sudoers has a section called “Quick guide to EBNF”).

Another form is Augmented BNF.