闲谈:
本来我对Linux是不怎么感兴趣的,但没办法,学校开了这个课,虽说是考查课,老师上课还是叨叨个不停,佩服我老师,鉴于走过的路,把自己学到的给大家分享下。
Linux中C语言编程
要求: 向文件写入内容,逆转输出内容,再输入复制的文件名2,将文件内容复制到文件2。
具体的看如下代码,以及我的运行效果,供正在学习Linux的朋友参考。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main( int argc, char **argv )
{
FILE *fp_src, *fp_des;
int i, len;
char str[128], cmd[128], buf[128], nz[128], file_name[20];
if ( argc != 2 )
{
printf( "命令行参数传入要操作的文件名!\n" );
return(-1);
}
if ( (fp_src = fopen( argv[1], "w+" ) ) == NULL )
{
printf( "the file open fail\n" );
return(-1);
}
printf( ">>> 向文件写入内容 <<<\n" );
printf( "请输入文件内容:" );
fgets( str, 128, stdin );
fputs( str, fp_src );
printf( "文件写入成功!\n\n" );
printf( ">>> 文件 %s 的内容如下 <<<\n", argv[1] );
rewind( fp_src );
sprintf( cmd, "/bin/cat %s\n", argv[1] );
system( cmd );
printf( "\n" );
printf( ">>> 文件逆转后如下 <<<" );
fgets( nz, 128, fp_src );
for ( i = strlen( nz ) - 1; i >= 0; i-- )
{
printf( "%c", nz[i] );
}
printf( "\n" );
printf( "文件逆转成功!\n\n" );
fseek( fp_src, 0, SEEK_END );
len = ftell( fp_src );
printf( ">>> 文件的长度为: %d <<<\n\n", len );
printf( ">>> 文件复制 <<<\n" );
FILE *fp = fp_src;
rewind( fp );
printf( "请输入复制后的文件名:" );
scanf( "%s", file_name );
fp_des = fopen( file_name, "w+" );
while ( 1 )
{
fgets( buf, sizeof(buf), fp );
if ( feof( fp ) == 1 )
break;
fputs( buf, fp_des );
}
printf( "文件复制成功\n" );
printf( "现在你可输入 'cat + 复制后的文件名' 查看复制的内容! \n" );
fclose( fp_src );
fclose( fp_des );
return(0);
}
下图是我的运行效果,供参考学习:
正在学习Linux的可在下方评论互相学习!
关注+收藏+点赞 就是我更新的动力!