#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]
)。
- 1 回答
- 0 关注
- 351 浏览
添加回答
举报
0/150
提交
取消