参数中指定大小时的read()函数

时间:2019-04-28 15:39:18

标签: c shell unix

我正在编写代码,读取功能有问题。我知道文件名,我有buf,但问题是要读取多少字节。大小是在参数中指定的,但是在运行程序时会显示错误。

我尝试分配char *b = argv[3],但没有任何改变。

问题所在是我的代码片段。

int ret;
   char buf[1024];

   ret = read( fd, buf, argv[3] );
   if(ret == -1){
      printf( "Nepavyko nuskaityti %d baitu\n", argv[3] );
      exit(1);
   }
   else {
      printf( "Sekmingai nuskaityta %d baitai\n", argv[3] );
   }

由于这样的错误,我什至无法运行我的程序:

edgals_rw01.c: In function ‘main’:
edgals_rw01.c:42:4: warning: passing argument 3 of ‘read’ makes integer from pointer without a cast
/usr/include/unistd.h:439:16: note: expected ‘size_t’ but argument is of type ‘char *’

0 个答案:

没有答案