#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 關注
- 380 瀏覽
添加回答
舉報
0/150
提交
取消