Linux服务器编程之:link()函数,ln命令,symlink,readlink,案例说明

1 link()依赖头文件

#include<unistd.h>

2函数定义

int link(const char *oldpath,const char *newpath);

函数说明:

 link()  creates  a  new link (also known as a hard link) to an existing
       file.

       翻译:link()函数为一个已经存在的文件创建一个新的链接(也就是通常所说的“硬链接”)

If newpath exists it will not be overwritten.
       翻译:如果新文件已经存在,它将不会被重写

This new name may be used exactly as the old  one  for  any  operation;
       both names refer to the same file (and so have the same permissions and
       ownership) and it is impossible to tell which name was the "original".

       翻译:新的名字可以替代旧的名字做任何操作,这些名字都指向同一个文件(并且也有相同的权限和拥有者),并且很难辨别哪个名称是原始的名称

3.返回值

      一旦成功,返回0,一旦错误,返回-1。并且erron被设置了结果

4.案例说明:

    

5.ln命令

说明:

        A:链接有两种,一种被称为硬链接(Hard Link),另外一种被称为符号链接(Symbol link),也叫软链接。建立硬链接时,链接文件和被链接文件必须位于同一个文件系统中,
并且不能建立指向目录的硬链接。而对于符号链接,则不存在这个问题。默认情况下,ln产生硬链接

     

6.symlink依赖的头文件

#include<unistd.h>

函数定义:

int symlink(const char *oldpath, const char *newpath);

描述:

symlink()  creates  a  symbolic  link  named newpath which contains the
       string oldpath.

7.readlink

读符号链接所指向的文件名字,不读文件内容

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





时间: 2024-11-02 19:27:05

Linux服务器编程之:link()函数,ln命令,symlink,readlink,案例说明的相关文章

Linux服务器编程之:chown()函数,chown命令

1.依赖的头文件 #include<unistd.h> 2.函数定义: //通过传入path的方式,改变和文件的拥有关系,如果他是一个符号链接,则跟踪它 int chown(const char *path, uid_t owner, gid_t group); //通过文件描述的方式进行修改用户所有组等的情况 int fchown(int fd, uid_t owner, gid_t group); //和chown不同的是它不跟踪符号链接 int lchown(const char *pa

Linux服务器编程之:utime()函数

1.依赖的头文件 #include<sys/types.h> #include<utime.h> 2函数声明 int utime(const char *filename, const struct utimbuf *times); #include<sys/time.h> int utimes(const char *filename,const struct timeval times[2]); 函数说明: The  utime()  system  call ch

Linux网络编程之UDP Socket程序示例_C 语言

在网络传输协议中,TCP协议提供的是一种可靠的,复杂的,面向连接的数据流(SOCK_STREAM)传输服务,它通过三段式握手过程建立连接.TCP有一种"重传确认"机制,即接收端收到数据后要发出一个肯定确认的信号,发送端如果收到接收端肯定确认的信号,就会继续发送其他的数据,如果没有,它就会重新发送. 相对而言,UDP协议则是一种无连接的,不可靠的数据报(SOCK_DGRAM)传输服务.使用UDP套接口不用建立连接,服务端在调用socket()生成一个套接字并调用bind()绑定端口后就可

c语言 socket编程-C语言网络编程之listen函数的实现

问题描述 C语言网络编程之listen函数的实现 请教: listen函数方法实现,函数体是什么 我抄了一段代码为什么执行到listen函数这儿就不往下执行了也不报错

linux 网络编程之TIME_WAIT状态

                                                         Linux 网络编程之TIME_WAIT状态                                                               刚刚开始看TCP socket的4次握手终止流程图的时候,对于最后的TIME_WAIT状态不是很理解.现在在回过头来研究,发现TIME_WAIT状态是一个很微妙状态.之所以设计TIME_WAIT状态的原因有2个原因:

8Linux服务器编程之:chdir()函数和cd命令,getcwd()函数和pwd

 1chdir依赖的头文件 #include<unistd.h> 2函数定义 int chdir(const char *path); int fchdir(int fd); 函数说明: chdir的作用是改变工作目录 4getcwd依赖的头文件 #include<unistd.h> 5函数定义: char *getcwd(char *buf, size_t size); 函数说明,通过这个函数获得路径 6.案例说明: 7.pathconf依赖的头文件 #include<

linux编程之pipe()函数详解_Linux

管道是一种把两个进程之间的标准输入和标准输出连接起来的机制,从而提供一种让多个进程间通信的方法,当进程创建管道时,每次都需要提供两个文件描述符来操作管道.其中一个对管道进行写操作,另一个对管道进行读操作.对管道的读写与一般的IO系统函数一致,使用write()函数写入数据,使用read()读出数据. #include<unistd.h> int pipe(int filedes[2]); 返回值:成功,返回0,否则返回-1.参数数组包含pipe使用的两个文件的描述符.fd[0]:读管道,fd[

linux网络编程之socket(十二) select函数的并发限制和poll函数应用举例

一.用select实现的并发服务器,能达到的并发数,受两方面限制 1.一个进程能打开的最大文件描述符限制. 这可以通过调整内核参数.可以通过ulimit -n来调整或者使用setrlimit函数设置, 但一个系统所能打开的最大数也是有 限的,跟内存大小有关,可以通过cat /proc/sys/fs/file-max 查看 2.select中的fd_set集合容量的限制 (FD_SETSIZE,一般为1024) ,这需要重新编译内核. 可以写个测试程序,只建立连接,看看最多能够建立多少个 连接,客

linux网络编程之socket(十) shutdown与close函数的区别

假设server和client 已经建立了连接,server调用了close, 发送FIN 段给client(其实不一定会发送FIN段,后面再说 ),此时server不能再通过socket发送和接收数据,此时client调用read,如果接收到FIN 段会返回0,但client此时还是 可以write 给server的,write调用只负责把数据交给TCP发送缓冲区就可以成功返回了,所以不会出错,而server收到数据 后应答一个RST段,表示服务器已经不能接收数据,连接重置,client收到R