📄 longpath.c
字号:
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include "ourhdr.h"
#define DEPTH 100 /* directory depth */
#define MYHOME "/home/stevens"
#define NAME "alonglonglonglonglonglonglonglonglonglongname"
int
main(void)
{
int i, size;
char *path;
if (chdir(MYHOME) < 0)
err_sys("chdir error");
for (i = 0; i < DEPTH; i++) {
if (mkdir(NAME, DIR_MODE) < 0)
err_sys("mkdir failed, i = %d", i);
if (chdir(NAME) < 0)
err_sys("chdir failed, i = %d", i);
}
if (creat("afile", FILE_MODE) < 0)
err_sys("creat error");
/*
* The deep directory is created, with a file at the leaf.
* Now let's try and obtain its pathname.
*/
path = path_alloc(&size);
for ( ; ; ) {
if (getcwd(path, size) != NULL)
break;
else {
err_ret("getcwd failed, size = %d", size);
size += 100;
if ( (path = realloc(path, size)) == NULL)
err_sys("realloc error");
}
}
printf("length = %d\n%s\n", strlen(path), path);
exit(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -