---
name: "strncasecmp"
section: "3"
platform: "linux"
package: "man-pages"
version: "6.19-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux", "freebsd"]
url: "https://new.carta.tech/strncasecmp"
---

# strncasecmp(3)

nonstrings case-insensitive compare

## NAME

strncasecmp - nonstrings case-insensitive compare

## LIBRARY

Standard C library (*libc*, *-lc*)

## SYNOPSIS

```
#include <strings.h>  // see memory.h(3head)
```

**int strncasecmp(const char** *s1***\[\], const char** *s2***\[\], size\_t** *n***);**

## DESCRIPTION

The **strncasecmp**() function is similar to [**strcasecmp**(3)](/strcasecmp/3.md), except that it compares no more than *n* bytes of *s1* and *s2*.

## RETURN VALUE

The **strncasecmp**() function returns an integer less than, equal to, or greater than zero if *s1* is, after ignoring case, found to be less than, to match, or be greater than *s2*, respectively.

## ATTRIBUTES

For an explanation of the terms used in this section, see [**attributes**(7)](/attributes/7.md).

| | | |
| --- | --- | --- |
| **Interface** | **Attribute** | **Value** |
| **strncasecmp**() | Thread safety | MT-Safe locale |

## STANDARDS

POSIX.1-2008.

## HISTORY

4\.4BSD, POSIX.1-2001.

**strncasecmp**() first appeared in 4.4BSD, where it was declared in *\<string.h\>*. Thus, for reasons of historical compatibility, the glibc *\<string.h\>* header file also declares these functions, if the **\_DEFAULT\_SOURCE** (or, in glibc 2.19 and earlier, **\_BSD\_SOURCE**) feature test macro is defined.

The POSIX.1-2008 standard says of these functions:

When the **LC\_CTYPE** category of the locale being used is from the POSIX locale, these functions shall behave as if the strings had been converted to lowercase and then a byte comparison performed. Otherwise, the results are unspecified.

## SEE ALSO

[**memory.h**(3head)](/memory.h/3head.md), [**strncmp**(3)](/strncmp/3.md), [**wcsncasecmp**(3)](/wcsncasecmp/3.md)
