這兩天模組B:嵌入式Linux系統實作與程式設計實務的課程內容進入了Embedded Linux 設計的部份了,在這兩天的課程中,我在課堂上實作很多範例,現貼上一支模擬 Linux cp 指令的程式範例,僅供參考^^。這一支範例允許一次自Source File讀寫1024byte的內容,之後複寫到Target File,如此可完整模擬cp 指令功能。程式碼如下:
#define BUFSIZE 1024
int main(int argc , char *argv[]) // cp source target
{
if( argc == 3 )
{
//unsigned char nBYTE;
char *buf;
int sourfd, tarfd, readLen;
if( (sourfd=open( argv[1], O_RDONLY )) == -1)
{
printf( "ERR: source file error\r\n" );
return 0;
}
if( (tarfd=creat( argv[2] , O_APPEND )) == -1)
{
printf( "ERR: Target file error\r\n" );
return 0;
}
buf = (char *)malloc( BUFSIZE );
while( (readLen = read (sourfd, (void *)buf, BUFSIZE) ) > 0)
{
if( write(tarfd, (void *)buf , readLen ) == -1 )
{
printf( "ERR: Copy error\r\n" );
break;
}
}
close(sourfd);
close(tarfd);
free( buf );
}
else
printf( "USAGE: cp source target[enter]\r\n" );
return 0;
}
/*
ssize_t read (int filedes, void *buffer, size_t size)
ssize_t write (int filedes, const void *buffer, size_t size)
*/
沒有留言:
張貼留言