---
title: "readSymbolicLink(_:context:replyHandler:)"
framework: fskit
role: symbol
role_heading: Instance Method
path: "fskit/fsvolume/handler/readsymboliclink(_:context:replyhandler:)"
---

# readSymbolicLink(_:context:replyHandler:)

Reads a symbolic link.

## Declaration

```swift
func readSymbolicLink(_ item: FSItem, context: FSContext, replyHandler reply: @escaping @Sendable (FSReadSymlinkResult?, (any Error)?) -> Void)
```

```swift
func readSymbolicLink(_ item: FSItem, context: FSContext) async throws -> FSReadSymlinkResult
```

## Parameters

- `item`: The symbolic link to read from. FSKit guarantees this item is of type doc://FSKit/documentation/FSKit/FSItem/ItemType/symlink.
- `context`: An object that enables context-aware file system decisions throughout the operation.
- `reply`: A block or closure to indicate success or failure. If reading succeeds, pass an instance of doc://FSKit/documentation/FSKit/FSReadSymlinkResult containing the link’s contents and attributes, along with a nil error. If reading fails, pass the relevant error as the second parameter; FSKit ignores the doc://FSKit/documentation/FSKit/FSReadSymlinkResult instance in this case. For an async Swift implementation, there’s no reply handler; simply return the result instance or throw an error.

## See Also

### Working with links

- [createLink(to:named:in:context:replyHandler:)](fskit/fsvolume/handler/createlink(to:named:in:context:replyhandler:).md)
- [FSCreateLinkResult](fskit/fscreatelinkresult.md)
- [createSymbolicLink(named:in:attributes:linkContents:context:replyHandler:)](fskit/fsvolume/handler/createsymboliclink(named:in:attributes:linkcontents:context:replyhandler:).md)
- [FSCreateSymlinkResult](fskit/fscreatesymlinkresult.md)
- [FSReadSymlinkResult](fskit/fsreadsymlinkresult.md)
