linux下的文件传输C语言实现

linux下的文件传输C语言实现,第1张

strncpy这个库函数的实现就是strncpy(目标, 源, 字符个数)第3个参数用于防止越界的;返回值是char *类型;

strncpy(file_name, buffer,strlen(buffer) >FILE_NAME_MAX_SIZE ?FILE_NAME_MAX_SIZE : strlen(buffer))

根据变量命名规则,估计大概的意思就是从输入(buffer)中获取文件名;如果这个文件名的长度大于FILE_NAME_MAX_SIZE,那么截取FILE_NAME_MAX_SIZE个字符作为文件名;否则buffer中的字符全是文件名

1.在windows系统下下载putty软件,它能远程连接到linux服务器上,下载安装包后解压会得到以下的目录结构

2.将上述文件夹中的pscp.exe文件复制到系统C:\Windows\System32目录结构下,保证用dos访问得到。

3.按住win+r键,输入cmd调出dos窗口,在窗口中按照以下格式输入:

pscp 文件在windows系统的路径 linux系统用户名@服务器Ip:/保存的路径

举个例子:pscp a.txt ubuntu@182.92.82.82:/home/ubuntu

4.之后点击回车,在输入服务器密码后,文件就传输过去啦,可在linux服务器对应的目录上找到相应的文件了。

5.当然还有一种更简单的方法,在windows系统上安装winscp软件,运行后如图所示

6.输入用户名密码后,登陆成功进入文件系统,图形化界面 *** 作,直接对要传输的文件进行拖拽处理,文件就很顺利的传输到服务器上了.

我提供的代码如下,自己补充main函数哈,希望能够帮到你:)

//相关头文件:

#include <stdio.h>

#include <signal.h>

#include <stdlib.h>

#include <unistd.h>

#include <sys/types.h>

#include <sys/stat.h>

#include <fcntl.h>

发送方send:

void fifo_pro()

{

char s[128]

int fd

FILE *fp

fp = fopen("./a.txt", "r")

mkfifo("/tmp/fifo.tst", 0644)

fd = open("/tmp/fifo.tst", O_WRONLY)

while(fgets(s, 127, fp) != NULL) {

write(fd, s, strlen(s))

//printf("%s",s)

}

close(fd)

fclose(fp)

unlink("/tmp/fifo.tst")

}

接收方get:

char s[128]

int fd = open("/tmp/fifo.tst", O_RDONLY)

int fd2 = open("./b.txt", O_WRONLY)

memset(s, 0, 128)

while(read(fd, s, 128) >0) {

printf("%s", s)

write(fd2, s, 128)

}

close(fd2)

close(fd)


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8560149.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-18
下一篇2023-04-18

发表评论

登录后才能评论

评论列表(0条)

    保存