C语言的readlink

简介: C语言的readlink read value of a symbolic link。 ssize_t readlink(const char *path, char *buf, size_t bufsiz); readlink() places the contents o...

C语言的readlink

read value of a symbolic link

ssize_t readlink(const char *path, char *buf, size_t bufsiz);

readlink() places the contents of the symbolic link path in the buffer buf, which has size bufsiz. readlink() does not append a null byte to buf. path所指的符号连接中对应的文件路径放到buf中,最多bufsiz个字节。

示例

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <unistd.h>

#include "sys/types.h"

#include <sys/stat.h>

#include <fcntl.h>

//#include <>

int get_pathname_from_fd(int fd, char pathname[], int n)

{

char buf[1024];

pid_t pid;

bzero(buf, 1024);

pid = getpid();

snprintf(buf, 1024, "/proc/%i/fd/%i", pid, fd);

return readlink(buf, pathname, n);

}

int main(void)

{

int fd;

char pathname[4096];

bzero(pathname, 4096);

fd = open("/tmp/foo", O_CREAT|O_RDONLY);

get_pathname_from_fd(fd, pathname, 4096);

printf("fd=%d; pathname=%s\n", fd, pathname);

return 0;

}

目录
相关文章
|
20天前
|
C语言
C语言练习5
C语言练习5。
12 2
C4.
|
1月前
|
存储 算法 安全
C语言的算法结构
C语言的算法结构
C4.
18 0
|
1月前
|
存储 人工智能 编译器
C语言:练习5
C语言:练习5
34 2
|
8月前
|
编译器 C语言 C++
初识c语言
一个程序运行起来如果报错或者结果是上一次运行程序的结果那么就是你写的程序有问题,可以用cursor这个编码chatgpt这个软件看一下那里出现的问题,但是要保证自己的代码是完整的我们在vs2022中要创建的源文件,头文件是用来存放自定义函数的。因为我们学习的是c语言所以我们创建的文件的以.c结尾的,不能是.cpp,因为c语言的语法规则和c++的语法规则不一样,要不然写出来的程序会报错。printf()函数在程序的函数体内实现,printf(“”)是负责打印(“”)里面的字符。scanf()函数的使用。
|
4月前
|
Java 编译器 C语言
初识C语言(1)
初识C语言(1)
51 0
|
5月前
|
C语言 C++
初识C语言(2)上
初识C语言(2)
35 0
|
8月前
|
存储 Java 编译器
初识C语言(一)
初识C语言(一)
|
8月前
|
编译器 程序员 C语言
初识C语言 ---->初识篇
变量,可以参照数学中的变量,也就是可变的量 常量,一个常数,不变的量、 如何定义变量: 整型变量:int x = 0; 在定义变量时最好就初始化。 字符型变量:char ch = 0; 等等,这里不一一列举。
86 0
|
8月前
|
Java C语言
初识C语言
初识C语言
|
8月前
|
存储 C语言