Network Security Internet Technology Development Database Servers Mobile Phone Android Software Apple Software Computer Software News IT Information

In addition to Weibo, there is also WeChat

Please pay attention

WeChat public account

Shulou

How to realize the functions related to soft links in linux

2025-01-18 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Internet Technology >

Share

Shulou(Shulou.com)06/01 Report--

This article mainly introduces "linux how to achieve soft link-related functions", in daily operation, I believe many people in linux how to achieve soft link-related functions on the question of doubt, small make up access to all kinds of information, sorting out simple and easy to use operation methods, hope to answer "linux how to achieve soft link-related functions" doubts helpful! Next, please follow the small series to learn together!

/* * linux/fs/minix/symlink.c * * Copyright (C) 1991, 1992 Linus Torvalds * * minix symlink handling code */

#ifdef MODULE#include #endif

#include

#include #include #include #include #include

static int minix_readlink(struct inode *, char *, int);static int minix_follow_link(struct inode *, struct inode *, int, int, struct inode **);

/* * symlinks can't do much... *///Function set for operating soft link files, assign to inode struct inode_operations minix_symlink_inode_operations = { NULL, /* no file-operations */ NULL, /* create */ NULL, /* lookup */ NULL, /* link */ NULL, /* unlink */ NULL, /* symlink */ NULL, /* mkdir */ NULL, /* rmdir */ NULL, /* mknod */ NULL, /* rename */ minix_readlink, /* readlink */ minix_follow_link, /* follow_link */ NULL, /* bmap */ NULL, /* truncate */ NULL /* permission */};//Open the file corresponding to the soft chain static int minix_follow_link(struct inode * dir, struct inode * inode, int flag, int mode, struct inode ** res_inode){ int error; struct buffer_head * bh;

*res_inode = NULL; if (! dir) { dir = current->fs->root; dir->i_count++; } if (! inode) { iput(dir); return -ENOENT; } if (! S_ISLNK(inode->i_mode)) { iput(dir); *res_inode = inode; return 0; } if (current->link_count > 5) { iput(inode); iput(dir); return -ELOOP; } //Read the first block of the file if (! (bh = minix_bread(inode, 0, 0))) { iput(inode); iput(dir); return -EIO;} iput(inode); current->link_count++; //Open the file corresponding to the saved filename in b_data error = open_namei(bh->b_data,flag,mode,res_inode,dir); current->link_count--; brelse(bh); return error;}//Read the contents of the soft chain file, i.e. the file path static int minix_readlink(struct inode * inode, char * buffer, int bufflen){ struct buffer_head * bh; int i; char c;

if (! S_ISLNK(inode->i_mode)) { iput(inode); return -EINVAL; } if (buflen > 1023) buflen = 1023; bh = minix_bread(inode, 0, 0); iput(inode); if (! bh) return 0; i = 0; while (ib_data[i])) { i++; put_fs_byte(c,buffer++); } brelse(bh); return i;}

At this point, on "linux how to achieve soft link-related features" learning is over, I hope to solve everyone's doubts. Theory and practice can better match to help you learn, go and try it! If you want to continue learning more relevant knowledge, please continue to pay attention to the website, Xiaobian will continue to strive to bring more practical articles for everyone!

Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.

Views: 0

*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.

Share To

Internet Technology

Wechat

© 2024 shulou.com SLNews company. All rights reserved.

12
Report