免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: druse
打印 上一主题 下一主题

[C] 关于main(int argc,char* argv[])的参数输入问题 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2008-12-11 17:06 |只看该作者
原帖由 druse 于 2008-12-11 16:46 发表

#include
int main(int argc , char* argv[])
{
  printf("Hello world");
   return 0 ;
}
程序就是这个了.其实就是想不明白为什么不加双引号不行.
谢谢了.

你的是什么环境?

我这程序不会出现段错误啊

论坛徽章:
0
12 [报告]
发表于 2008-12-11 17:09 |只看该作者
根本就没用argv,怎么会是argv导致的段错误呢?

论坛徽章:
0
13 [报告]
发表于 2008-12-11 17:12 |只看该作者
原帖由 druse 于 2008-12-11 16:46 发表

#include
int main(int argc , char* argv[])
{
  printf("Hello world";
   return 0 ;
}
程序就是这个了.其实就是想不明白为什么不加双引号不行.
谢谢了.


论坛徽章:
0
14 [报告]
发表于 2008-12-11 23:13 |只看该作者

回复 #1 druse 的帖子

你出了段错误,估计是程序没加任何判断就去搞第一个参数去了,所以程序才段错误。

你自己看看你那几个段错误的情况,都是后面的特殊字符给shell认去啦。

记得搞之前通过argc判断下参数个数后再去搞argv赛。

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
15 [报告]
发表于 2008-12-11 23:18 |只看该作者
这些应该是shell的问题。LZ了解一下那些是shell的限制字符,那些使用时候需要封闭

论坛徽章:
0
16 [报告]
发表于 2008-12-12 12:21 |只看该作者

回复 #11 5毛党党员 的帖子

Linux version 2.6.9-42.0.3.ELsmp (root@CM-WWW-H) (gcc version 3.4.5 20051201 (Red Hat 3.4.5-2)) #1 SMP Tue Oct 17 14:46:05 CST 2006

论坛徽章:
0
17 [报告]
发表于 2008-12-12 12:23 |只看该作者
应该就像15楼说的.先这么理解吧.

论坛徽章:
0
18 [报告]
发表于 2008-12-12 12:32 |只看该作者

没有问题呀。

  1. [0 jimmy@bogon hello]$ cat hello.c
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <unistd.h>

  5. int main(int argc, char **argv)
  6. {
  7.     printf("hello.\n");
  8.     return 0;
  9. }
  10. [0 jimmy@bogon hello]$ gcc hello.c
  11. [0 jimmy@bogon hello]$ ./a.out #
  12. hello.
  13. [0 jimmy@bogon hello]$ ./a.out &
  14. [1] 3252
  15. [0 jimmy@bogon hello]$ hello.

  16. [1]+  Done                    ./a.out
  17. [0 jimmy@bogon hello]$ ./a.out ->
  18. bash: syntax error near unexpected token `newline'
  19. [0 jimmy@bogon hello]$ uname -a
  20. Linux bogon 2.6.21-7.fc7xen #1 SMP Tue Feb 12 12:32:24 EST 2008 i686 i686 i386 GNU/Linux
  21. [0 jimmy@bogon hello]$
复制代码

论坛徽章:
0
19 [报告]
发表于 2008-12-12 12:43 |只看该作者
原帖由 druse 于 2008-12-11 16:46 发表

#include
int main(int argc , char* argv[])
{
  printf("Hello world");
   return 0 ;
}
程序就是这个了.其实就是想不明白为什么不加双引号不行.
谢谢了.



不可能啊
我试了只要你不去用argv就不会错啊

论坛徽章:
0
20 [报告]
发表于 2008-12-12 12:46 |只看该作者
原帖由 druse 于 2008-12-11 16:25 发表
也就是说#号代表的注释呗那么
$./a.out &
$./a.out ->
也都是段错误呀,谢谢你了.


$./a.out &这个是后台运行。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP