为了账号安全,请及时绑定邮箱和手机立即绑定

使用选定的main()参数在bash中运行程序

使用选定的main()参数在bash中运行程序

蛊毒传说 2021-04-12 16:23:08
#include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <unistd.h>int kp_test_open(const char *name);int kp_test_close(int fd);int kp_test_open(const char *name){   int dskr;   dskr = open( name, O_RDONLY );   if( dskr == -1 ){      perror( name );      exit(1);   }   printf( "dskr = %d\n", dskr );   return dskr;}int kp_test_close(int fd){   int rv;   rv = close( fd );   if( rv != 0 ) perror ( "close() failed" );   else puts( "closed" );   return rv;}int main( int argc, char *argv[] ){   int d;   if( argc != 2 ){      printf( "Naudojimas:\n %s failas_ar_katalogas\n", argv[0] );      exit( 255 );   }   d = kp_test_open( argv[1] );   kp_test_close( d );   kp_test_close( d ); /* turi mesti close klaida */   return 0;}所以我有用C编写的名为test的程序,我想在bash中运行它,以便 d = kp_test_open( argv[1] );   kp_test_close( d );   kp_test_close( d ); 这3行将被激活,我必须以某种方式将argc值更改为2,我可以以某种方式在bash中进行操作吗?当我运行编译的脚本时,我使用./test现在我得到了这些结果Naudojimas:./test failas_ar_katalogas
查看完整描述

1 回答

?
不负相思意

TA贡献1777条经验 获得超10个赞

argc设置为调用程序所使用的参数数量,包括argv[0](默认情况下设置为程序本身的名称)。

因此,如果您运行:

./yourprogram "some argument"

argc将为2,因为yourprogram是一个参数(argv[0]),some argument是另一个参数(argv[1])。


查看完整回答
反对 回复 2021-04-16
  • 1 回答
  • 0 关注
  • 351 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信