亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用選定的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 關注
  • 380 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號