---
name: "filepath"
section: "3"
platform: "linux"
package: "alliance"
version: "5.1.1-3"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/filepath"
---

# filepath(3)

return the whole search path of a file

## NAME

filepath - return the whole search path of a file

## SYNOPSYS

```
#include "mut.h"
char ∗filepath(name, extension)
char ∗name, ∗extension;
```

## PARAMETERS

- *name*

  Name of the file to be search for

- *extension*

  File extension

## DESCRIPTION

**filepath** return the absolute path of a cell. This is useful for error messages, since the caller of mbk file functions is not able to specify explicitly which file it opened. Having such an information is also necessary when last modification times or access times are needed, as for consistency checks. The file is searched through the environment variable [**MBK\_WORK\_LIB**(1)](/MBK_WORK_LIB/1.md), and if not found, through [**MBK\_CATA\_LIB**(1)](/MBK_CATA_LIB/1.md) in the user defined order.\
 The file to be searched is called *name.extension*, if extension is not **NULL**, else it is *name*. If *extension* is the empty string, **""**, then the file name will be *name.* .\

## RETURN VALUE

**filepath** returns **NULL** on failure, ie the file is not in the pathes, or the absolute path on success. The value returned, when not **NULL**, is stored in a **static** buffer, so this values is to use at return time or copied into a user buffer.

## EXAMPLE

```
#include <stdio.h>
#include "mut.h"
#include "mph.h"
void vti_error(fig, error)
phfig_list ∗fig;
char *(*error)();
{
		fprintf(stderr, "Syntax error in %s\n", filepath(fig->NAME, "cp"));
		fprintf(stderr, "%s\n", error());
}
```

## SEE ALSO

**mbk**(1), [**MBK\_WORK\_LIB**(1)](/MBK_WORK_LIB/1.md), [**MBK\_CATA\_LIB**(1)](/MBK_CATA_LIB/1.md), [**mbkfopen**(3)](/mbkfopen/3.md). [**mbkunlink**(3)](/mbkunlink/3.md).
