20 课程总结,单机模式下的文件上传与下载

来源:互联网 发布:华为程序员招聘要求 编辑:程序博客网 时间:2024/05/02 00:47

1. 例子:单机模式下的文件上传送和下载

(1)    输入服务器的地址:  路径和目录名

(2)  列出服务器中有哪些文件:   opendir  readdir  

(3)  输入从服务器下载的文件名    或  上传文件到服务器的文件名

(4)  文件下载                    或   文件上传送

文件IO:  open read write close

标准IO    fopen fputs fgets  fputc fgetc fread fwrite fclose


2. 代码

#include "stdio.h"#include "sys/types.h"#include "dirent.h"#include "string.h"#include "unistd.h"#include "fcntl.h"int main(int argc, char *argv[]){DIR *dp;int fd;struct dirent *dir;char server[128] = {0};int src_fd,des_fd;char file[128]={0};char buf[128]={0};int ret;start:printf("please input server PATH and Directory name\n");scanf("%s",server);//list server filesdp = opendir(server);if(dp == NULL){printf("open server %s error\n",server);goto start;}printf("open server %s success\n",server);//read server dirwhile(1){dir = readdir(dp);if(dir == NULL){break;}else{printf("inode=%ld name =%s\n",dir->d_ino,dir->d_name);}}printf("please input download file\n");scanf("%s",file);//open server filesrc_fd = open(strcat(strcat(server,"/"),file),O_RDONLY);if(src_fd < 0){printf("open download file :%s\n",file);return -1;}printf("open download file %s success\n",file);des_fd = open(file,O_CREAT | O_WRONLY,0777);if(des_fd < 0){printf("create file %s error\n",file);return -2;}printf("create file %s success\n",file);while(1){ret = read(src_fd,buf,128);if(ret < 128){break;}write(des_fd,buf,ret);}write(des_fd,buf,ret);close(des_fd);close(src_fd);closedir(dp);return 0;}


0 0
原创粉丝点击