getcwd.c

来自「基于4个mips核的noc设计」· C语言 代码 · 共 71 行

C
71
字号
/* Emulate getcwd using getwd.   This function is in the public domain. *//*NAME	getcwd -- get absolute pathname for current working directorySYNOPSIS	char *getcwd (char pathname[len], len)DESCRIPTION	Copy the absolute pathname for the current working directory into	the supplied buffer and return a pointer to the buffer.  If the 	current directory's path doesn't fit in LEN characters, the result	is NULL and errno is set.	If pathname is a null pointer, getcwd() will obtain size bytes of	space using malloc.BUGS	Emulated via the getwd() call, which is reasonable for most	systems that do not have getcwd().*/#include "config.h"#ifdef HAVE_SYS_PARAM_H#include <sys/param.h>#endif#include <errno.h>#ifdef HAVE_STRING_H#include <string.h>#endif#ifdef HAVE_STDLIB_H#include <stdlib.h>#endifextern char *getwd ();extern int errno;#ifndef MAXPATHLEN#define MAXPATHLEN 1024#endifchar *getcwd (buf, len)  char *buf;  int len;{  char ourbuf[MAXPATHLEN];  char *result;  result = getwd (ourbuf);  if (result) {    if (strlen (ourbuf) >= len) {      errno = ERANGE;      return 0;    }    if (!buf) {       buf = (char*)malloc(len);       if (!buf) {           errno = ENOMEM;	   return 0;       }    }    strcpy (buf, ourbuf);  }  return buf;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?