• 大小: 11KB
    文件类型: .rar
    金币: 2
    下载: 0 次
    发布日期: 2024-02-02
  • 语言: 其他
  • 标签: linux  c  ftp  

资源简介

linux c下的ftp客户端和服务器端,比较标准的一个例子,实现了ftp的基本所有功能,十分具有学习价值。

资源截图

代码片段和文件信息

#include    
#include    
#include    
#include    
#include    
#include    
#include “pub_data.h“   
#define  SHARE_SIZE  2048   
  
int sem_id;  
union semun   
{  
   int val;                    
   struct semid_ds *buf;       
   unsigned short *array;      
    struct seminfo *__buf;      
};  
  
void init_sem(int sem_id)  
{  
    union semun sem_un;  
    sem_un.val=1;  
    semctl(sem_id0SETVALsem_un);  
}  
  
void sem_p(int sem_id)  
{  
    struct sembuf sem_buf;  
    sem_buf.sem_num=0;  
    sem_buf.sem_op=-1;  
    sem_buf.sem_flg=0;  
    semop(sem_id&sem_buf1);  
}  
  
void sem_v(int sem_id)  
{  
    struct sembuf sem_buf;  
    sem_buf.sem_num=0;  
    sem_buf.sem_op=1;  
    sem_buf.sem_flg=0;  
    semop(sem_id&sem_buf1);  
}  
  
void init_stat()  
{  
    int /*sem_id*/shm_id;  
    void *addr=NULL;  
    shm_id=shmget((key_t)1234SHARE_SIZEIPC_CREAT|0755);  
    sem_id=semget((key_t)12341IPC_CREAT|0755);  
    init_sem(sem_id);  
    addr=shmat(shm_idNULL0);  
    sys_stat=(SYS_STAT *)addr;  
      
    sys_stat->upfile_count=0;  
    sys_stat->downfile_count=0;  
    sys_stat->upfile_byte=0;  
    sys_stat->downfile_byte=0;  
}  
int op_stat(int typelong bytes)  
{  
    sem_p(sem_id);  
    if(type==0)         //上传文件   
    {     
        sys_stat->upfile_count++;  
        sys_stat->upfile_byte+=bytes;  
    }  
    if(type==1)         //下载文件   
    {  
        sys_stat->downfile_count++;  
        sys_stat->downfile_byte+=bytes;  
    }  
    sem_v(sem_id);  
      
    return 0;  
}  
  
void scan_stat(char *_return_info)  
{  
    memset(_return_info‘\0‘sizeof(_return_info));  
    sprintf(_return_info“\t%s%d%s%d%s\n\t%s%d%s%d%s\r\n““the stored files count:“sys_stat->upfile_count“  “sys_stat->upfile_byte“Bytes““the retrieved files count:“sys_stat->downfile_count“  “sys_stat->downfile_byte“Bytes“);  
}  

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2050  2012-03-30 23:54  ftpserver\ftpstat.c

     文件        415  2012-03-30 23:54  ftpserver\ftpstat.h

     文件      20513  2012-03-30 23:57  ftpserver\myftpcmd.c

     文件       1297  2012-03-30 23:57  ftpserver\myftpcmd.h

     文件       4989  2012-03-30 23:55  ftpserver\myftpd.c

     文件        488  2012-03-30 23:56  ftpserver\myftpd.h

     文件       9907  2012-03-30 23:58  ftpserver\myftpservice.c

     文件        726  2012-03-30 23:58  ftpserver\myftpservice.h

     文件       1253  2012-03-30 23:59  ftpserver\pubdata.h

     目录          0  2012-03-31 15:19  ftpserver

----------- ---------  ---------- -----  ----

                41638                    10


评论

共有 条评论