1、输入命令行:--> FTP 10.1.61.212如果对方没有开启FTP服务,那么这个命令就不会有效果。
2、--> 用户名称:这个主要是FTP服务器配置的用户名和密码
--> 用户密码:
3、主要是使用二进制来传输文件,--> bin
--> quote tpye c 1381这个意思是指定服务器端的代码页,如果传输的是IFS流文件,不用做转换,直接用BINARY的模式传输文件。不会出现编码错误。
4、--> lcd D:\Document\data\upload 这个命令主要是进去本地文件夹目录用来上传文件的本地路径目录。
5、进入主机的目录,也就是FTP服务器的路径cd CBSDOTHDTA
--> put "D:/Document/data/upload/UPFW90.FRZN160919",使用put命令上传文件。
6、put "D:/Document/data/upload/UPFW90.FRZN160919"命令执行成功之后,会在后面出来三个交易码主要是200、150、226这都是成功的交易码。完成效果图。
#include "stdio.h"#include "stdlib.h"
#include "string.h"
struct PCB {
char NAME[10] /*进程名*/
int ROUND /*进程轮转时间片*/
int REACHTIME /*进程到达时间*/
int CPUTIME /*进程占用CPU时间*/
int COUNT /*计数器*/
int NEEDTIME /*进程完成还要的CPU时间*/
char STATE /*进程的状态*/
struct PCB *NEXT /*链指针*/
}
struct LINK { /*PCB的链结构*/
struct PCB *RUN /*当前运行进程指针*/
struct PCB *READY /*就绪队列头指针*/
struct PCB *TAIL /*就绪队列尾指针*/
struct PCB *FINISH /*完成队列头指针*/
}
void INIT(LINK *) /*对PCB的链结构初始化*/
void INSERT(LINK *) /*将执行了一个单位时间片数且还未完成的进程的PCB插到就绪队列的队尾*/
void FIRSTIN(LINK *) /*将就绪队列中的第一个进程投入运行*/
void PRINT(LINK *) /*打印每执行一个时间片后的所有进程的状态*/
void PR(PCB *) /*打印一个进程的状态*/
int CREATE(LINK *,int) /*创建新的进程*/
void ROUNDSCH(LINK *) /*按时间片轮转法调度进程*/
void main() {
LINK pcbs
int i
INIT(&pcbs)
i=0
printf("创建5个进程\n\n")
while(i<5) {
if(CREATE(&pcbs,i+1)==1) {
printf("进程已创建\n\n")
i++
}
else
printf("进程创建失败\n\n")
}
FIRSTIN(&pcbs)
ROUNDSCH(&pcbs)
}
void ROUNDSCH(LINK *p) {
PCB *pcb
while(p->RUN!=NULL) {
pcb=(PCB *)malloc(sizeof(PCB))
strcpy(pcb->NAME,p->RUN->NAME)
pcb->ROUND=p->RUN->ROUND
pcb->REACHTIME=p->RUN->REACHTIME
pcb->CPUTIME=p->RUN->CPUTIME
pcb->COUNT=p->RUN->COUNT
pcb->NEEDTIME=p->RUN->NEEDTIME
pcb->STATE=p->RUN->STATE
pcb->NEXT=p->RUN->NEXT
pcb->CPUTIME++
pcb->NEEDTIME--
pcb->COUNT++
if(pcb->NEEDTIME==0) {
pcb->NEXT=p->FINISH->NEXT
p->FINISH->NEXT=pcb
pcb->STATE='F'
p->RUN=NULL
if(p->READY!=p->TAIL)
FIRSTIN(p)
}
else {
p->RUN=pcb
if(pcb->COUNT==pcb->ROUND) {
pcb->COUNT=0
if(p->READY!=p->TAIL) {
pcb->STATE='W'
INSERT(p)
FIRSTIN(p)
}
}
}
PRINT(p)
}
}
void INIT(LINK *p) {
p->RUN=NULL
p->TAIL=p->READY=(PCB *)malloc(sizeof(PCB))
p->READY->NEXT=NULL
p->FINISH=(PCB *)malloc(sizeof(PCB))
p->FINISH->NEXT=NULL
}
int CREATE(LINK *p,int n) {
PCB *pcb,*q
pcb=(PCB *)malloc(sizeof(PCB))
flushall()
printf("请输入第%d个进程的名称:\n",n)
gets(pcb->NAME)
printf("请输入第%d个进程的轮转时间片数:\n",n)
scanf("%d",&(pcb->ROUND))
printf("请输入第%d个进程的到达时间:\n",n)
scanf("%d",&(pcb->REACHTIME))
pcb->CPUTIME=0
pcb->COUNT=0
printf("请输入第%d个进程需运行的时间片数:\n",n)
scanf("%d",&(pcb->NEEDTIME))
pcb->STATE='W'
pcb->NEXT=NULL
if(strcmp(pcb->NAME,"")==0||pcb->ROUND<=0||pcb->NEEDTIME<=0) /*输入错误*/
return 0
q=p->READY
while(q->NEXT!=NULL&&q->NEXT->REACHTIME<=pcb->REACHTIME)
q=q->NEXT
pcb->NEXT=q->NEXT
q->NEXT=pcb
if(pcb->NEXT==NULL)
p->TAIL=pcb
return 1
}
void FIRSTIN(LINK *p) {
PCB *q
q=p->READY->NEXT
p->READY->NEXT=q->NEXT
q->NEXT=NULL
if(p->READY->NEXT==NULL)
p->TAIL=p->READY
q->STATE='R'
p->RUN=q
}
void INSERT(LINK *p) {
PCB *pcb
pcb=(PCB *)malloc(sizeof(PCB))
strcpy(pcb->NAME,p->RUN->NAME)
pcb->ROUND=p->RUN->ROUND
pcb->REACHTIME=p->RUN->REACHTIME
pcb->CPUTIME=p->RUN->CPUTIME
pcb->COUNT=p->RUN->COUNT
pcb->NEEDTIME=p->RUN->NEEDTIME
pcb->STATE=p->RUN->STATE
pcb->NEXT=p->RUN->NEXT
p->TAIL->NEXT=pcb
p->TAIL=pcb
p->RUN=NULL
pcb->STATE='W'
}
void PRINT(LINK *p) {
PCB *pcb
printf("执行一个时间片后的所有进程的状态:\n\n")
if(p->RUN!=NULL)
PR(p->RUN)
if(p->READY!=p->TAIL) {
pcb=p->READY->NEXT
while(pcb!=NULL) {
PR(pcb)
pcb=pcb->NEXT
}
}
pcb=p->FINISH->NEXT
while(pcb!=NULL) {
PR(pcb)
pcb=pcb->NEXT
}
}
void PR(PCB *p) {
printf("进程名:%s\n",p->NAME)
printf("进程轮转时间片:%d\n",p->ROUND)
printf("进程到达时间:%d\n",p->REACHTIME)
printf("进程占用CPU时间:%d\n",p->CPUTIME)
printf("计数器:%d\n",p->COUNT)
printf("进程完成还要的CPU时间:%d\n",p->NEEDTIME)
printf("进程的状态:%c\n\n",p->STATE)
}
和本地文件读写类似的
先以读方式打开本地文件,再以写方式打开FTP远程文件,然后读取本地文件至远程文件。
关键代码:
bOpen = m_CFile.Open( m_str_LocalFileName , CFile::modeRead )m_pRemoteFile = m_pConnect->OpenFile(m_str_remoteFileName, GENERIC_WRITE)
while( (dwRead = m_CFile.Read(pBuf, m_FileLenStep)) > 0 )
{
m_pRemoteFile->Write( pBuf, dwRead )
m_CurUploadSize += dwRead
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)