| Previous | Next |
| ESOCKTNOSUPPORT | EOPNOTSUPP |
ENOLINK
This page examines UCRT compatibility status: link unavailable. The Microsoft C runtime exposed the POSIX-supplement ENOLINK value for a link-related compatibility condition.
Historical and API context
Microsoft C runtime compatibility: Ucrt compatibility status: link unavailable is exposed by the Microsoft CRT compatibility layer. For UCRT compatibility status: link unavailable, _doserrno and the immediately preceding CRT call can preserve the Win32 or runtime condition summarized by errno. Within Microsoft C runtime compatibility, the wording attached to ENOLINK is a clue to the original interface, not proof that a similarly named modern subsystem returned it.
Microsoft documents that some errno constants exist for UNIX compatibility and that errno is not necessarily the operating-system error code for the UCRT compatibility status: link unavailable case. Preserve both layers during diagnosis while evaluating UCRT compatibility status: link unavailable.
Reconstruct the returning call
| Evidence | Question it answers |
|---|---|
| CRT API, errno and _doserrno pair, pathname or endpoint, and runtime build. | Ties UCRT compatibility status: link unavailable to one live API object instead of a translated message. |
| Thread-local errno captured before another CRT call changes it in an investigation of UCRT compatibility status: link unavailable. | Shows whether UCRT compatibility status: link unavailable arose in the caller ABI, wrapper, or provider. |
| Paired Win32 handle/socket state and the actual CRT descriptor conversion for the UCRT compatibility status: link unavailable case. | Preserves the first boundary before errno can be overwritten for UCRT compatibility status: link unavailable. |
| Known-good call using the same UCRT build and calling convention while evaluating UCRT compatibility status: link unavailable. | Provides a same-platform known-good comparison for UCRT compatibility status: link unavailable. |
Capture errno immediately after the failing call that produced UCRT compatibility status: link unavailable, before formatting, tracing, allocation, or cleanup code runs. For UCRT compatibility status: link unavailable, retain the function return value as well because many C interfaces signal failure there and use errno only as secondary detail.
A small reproduction
- Repeat against a known available link/endpoint. Keep the binary, header ABI, and provider fixed while testing UCRT compatibility status: link unavailable.
- Log errno with _get_errno and _doserrno at the immediate failure site in an investigation of UCRT compatibility status: link unavailable. Record whether the control reaches the same syscall or runtime boundary as UCRT compatibility status: link unavailable.
- Verify the numeric value against the target UCRT header rather than a Unix table for the UCRT compatibility status: link unavailable case. A changed errno after this test is a new boundary, not another spelling of UCRT compatibility status: link unavailable.
Two observations are especially discriminating here: CRT API, errno and _doserrno pair, pathname or endpoint, and runtime build. Use this control for comparison: repeat against a known available link/endpoint. For UCRT compatibility status: link unavailable, those two observations separate a stale identifier or unsupported request from a provider-wide failure without broad changes to the host.
Portability traps
| Tempting assumption | Safer interpretation |
|---|---|
| The English phrase is assumed to be portable | UCRT compatibility status: link unavailable belongs to Microsoft C runtime compatibility; verify the target headers and returning API before applying another platform's errno table |
| A retry succeeded and erased the original evidence | The retry can replace UCRT compatibility status: link unavailable with a different state; preserve the first call, numeric value, and object generation beforehand |
If a wrapper converts UCRT compatibility status: link unavailable to an exception or Boolean, instrument below that wrapper. For UCRT compatibility status: link unavailable, the decisive record is the syscall, ioctl, CRT function, or compatibility entry point that first exposed the value.
Correction and acceptance
Targeted correction. Repair the underlying link indicated by _doserrno or handle the compatibility condition explicitly.
Regression proof. The working link succeeds and the unavailable control maps consistently. Verify one supported boundary case and one deliberate negative case so handling of UCRT compatibility status: link unavailable remains explicit.
Technical references
These owner-maintained or standards-based sources define the namespace and subsystem contract needed to verify Microsoft C runtime compatibility ENOLINK on the deployed platform version.
- Microsoft: errno constants — defines the status namespace used for UCRT compatibility status: link unavailable.
- Microsoft: _get_errno — documents the API or lifecycle boundary behind UCRT compatibility status: link unavailable.
- Microsoft: _doserrno and errno — provides ABI, implementation, or protocol context for UCRT compatibility status: link unavailable.
- The Open Group: errno.h — supports the portability and verification limits for UCRT compatibility status: link unavailable.
Looking for a different code? Search another status or error code.
