<!--
{
  "availability" : [
    "DriverKit: -",
    "iOS: -",
    "iPadOS: -",
    "macOS: -"
  ],
  "documentType" : "symbol",
  "framework" : "DriverKit",
  "identifier" : "/documentation/DriverKit/OSString",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "DriverKit"
    ],
    "preciseIdentifier" : "c:@S@OSString"
  },
  "title" : "OSString"
}
-->

# OSString

A container for managing an array of characters.

```
class OSString;
```

## Overview

OSString is a container class for managing arrays of characters.

*Encodings*

OSString makes no provisions for different character encodings and assumes that a string is a nul-terminated sequence of single-byte characters. User-space code must either assume an encoding (typically ASCII or UTF-8) or determine it in some other way (such as an IORegistryEntry property).

OSString is immutable.

## Topics

### Creating a String

[`static OSStringPtr withString(const OSString *aString);`](/documentation/DriverKit/OSString/withString)

Allocates an OSString object with a copy of an OString object.

[`static OSStringPtr withCString(const char *cString);`](/documentation/DriverKit/OSString/withCString-4wsql)

Allocates an OSString object with a copy of a c-string.

[`static OSStringPtr withCString(const char *cString, size_t length);`](/documentation/DriverKit/OSString/withCString-721oh)

Allocates an OSString object with a copy of a c-string, up to a given length.

[`static OSStringPtr withCStringNoCopy(const char *cString);`](/documentation/DriverKit/OSString/withCStringNoCopy)

Allocates an OSString object with a copy of a c-string.

[`OSStringPtrOSStringCreate(const char *cstring, size_t length);`](/documentation/DriverKit/OSStringCreate)

[`virtual void free();`](/documentation/DriverKit/OSString/free)

### Getting a C String

[`const char * getCStringNoCopy() const;`](/documentation/DriverKit/OSString/getCStringNoCopy)

Returns a pointer to the OSString object’s internal data buffer.

[`const char *OSStringGetStringPtr(OSStringPtr obj);`](/documentation/DriverKit/OSStringGetStringPtr)

[`typedef OSString * OSStringPtr;`](/documentation/DriverKit/OSStringPtr)

### Inspecting a String

[`size_t getLength() const;`](/documentation/DriverKit/OSString/getLength)

Returns length of string not including null terminator.

[`size_t OSStringGetLength(OSStringPtr string);`](/documentation/DriverKit/OSStringGetLength)

### Comparing Strings

[`bool isEqualTo(const OSData *aDataObject) const;`](/documentation/DriverKit/OSString/isEqualTo-1uq1f)

Compares the string with an OSData.

[`virtual bool isEqualTo(const OSMetaClassBase *anObject) const;`](/documentation/DriverKit/OSString/isEqualTo-712xj)

Compares the string with an OSObject

[`bool isEqualTo(const OSString *aString) const;`](/documentation/DriverKit/OSString/isEqualTo-5paj5)

Compares the string with an OSString.

[`bool isEqualTo(const char *cString) const;`](/documentation/DriverKit/OSString/isEqualTo-2rg80)

Compares the string with a c-string.

## Relationships

### Inherits From

[`OSContainer`](/documentation/DriverKit/OSContainer)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)