#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <libnfs.h>
int main() {
int result;
struct nfs_context *nfs;
struct nfs_args args;
char *server = "your_server_ip";
char *export = "/path/to/export";
char *path = "/path/to/file";
char buffer[1024];
size_t bytes_written;
// 初始化NFS会话
result = nfs_init(&nfs);
if (result != NFS_OK) {
fprintf(stderr, "Failed to initialize NFS context: %s\n", nfs_strerror(result));
exit(EXIT_FAILURE);
}
// 设置NFS服务器和导出路径
memset(&args, 0, sizeof(args));
args.server = server;
args.export = export;
args.path = path;
// 挂载NFS文件系统
result = nfs_mount(nfs, &args);
if (result != NFS_OK) {
fprintf(stderr, "Failed to mount NFS file system: %s\n", nfs_strerror(result));
exit(EXIT_FAILURE);
}
// 从NFS文件系统读取数据到缓冲区
result = nfs_read(nfs, buffer, sizeof(buffer));
if (result != NFS_OK) {
fprintf(stderr, "Failed to read from NFS file system: %s\n", nfs_strerror(result));
exit(EXIT_FAILURE);
} else {
printf("Read %ld bytes from NFS file system:\n", result);
fwrite(buffer, 1, result, stdout); // 将读取的数据写入标准输出
}
// 向NFS文件系统写入数据
strcpy(buffer, "Hello, NFS!"); // 将要写入的数据放入缓冲区
result = nfs_write(nfs, buffer, strlen(buffer));
if (result != NFS_OK) {
fprintf(stderr, "Failed to write to NFS file system: %s\n", nfs_strerror(result));
exit(EXIT_FAILURE);
} else {
printf("Wrote %ld bytes to NFS file system\n", result);
}
// 卸载NFS文件系统并释放资源
result = nfs_umount(nfs);
if (result != NFS_OK) {
fprintf(stderr, "Failed to unmount NFS file system: %s\n", nfs_strerror(result));
exit(EXIT_FAILURE);
} else {
printf("Successfully unmounted NFS file system\n");
}
nfs_destroy(nfs); // 销毁NFS上下文,释放相关资源
return 0;
}
libnfs库API函数调用举例
于 2023-12-15 13:31:34 首次发布