亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
12下一頁(yè)
最近訪問板塊 發(fā)新帖
查看: 5035 | 回復(fù): 10
打印 上一主題 下一主題

[C] c程序在什么情況下argc=0 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2013-05-22 18:44 |只看該作者 |倒序?yàn)g覽
或者argv[0]="";
人工修改的不算

論壇徽章:
4
白羊座
日期:2013-09-17 21:59:30技術(shù)圖書徽章
日期:2013-10-12 22:16:03白羊座
日期:2013-10-14 11:01:40雙子座
日期:2013-12-17 18:26:39
2 [報(bào)告]
發(fā)表于 2013-05-22 19:20 |只看該作者
argc=0:
  1. execlp("./test", (char*)0);
復(fù)制代碼
argv[0]="":
  1. execlp("./test", "", (char*)0);
復(fù)制代碼

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2013-05-23 10:52 |只看該作者
#include<stdio.h>
#include<unistd.h>
int main(int argc,char *argv[])
{
execlp("ls a",(char *)0);
printf("%d\n",argc);
}

[oracle@redflag11012501 ~]$ gcc argc.c
[oracle@redflag11012501 ~]$ ./a.out
1

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2013-05-23 10:57 |只看該作者
這個(gè)可以為零嗎?至少也得是1吧

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2013-05-23 11:00 |只看該作者
#include<stdio.h>
#include<unistd.h>
int main(int argc,char *argv[])
{
execlp("ls a","",(char *)0);
printf("%s\n",argv[0]);
}
[oracle@redflag11012501 ~]$ gcc argc.c
[oracle@redflag11012501 ~]$ ./a.out
./a.out

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2013-05-23 11:02 |只看該作者
如果改成
#include<stdio.h>
#include<unistd.h>
int main(int argc,char *argv[])
{
execlp("./a.out","",(char *)0);
printf("%s\n",argv[0]);
}

就掛起了

論壇徽章:
4
水瓶座
日期:2013-09-06 12:27:30摩羯座
日期:2013-09-28 14:07:46處女座
日期:2013-10-24 14:25:01酉雞
日期:2014-04-07 11:54:15
7 [報(bào)告]
發(fā)表于 2013-05-23 11:28 |只看該作者
樓上都搞笑的吧,  ls -a能執(zhí)行? -a是命令行參數(shù), ls才是程序, execlp返回-1了還看啥? /bin/bash -c command才是你想要的吧.

A NULL argv[0] was passed through an exec system call.

不傳第0個(gè)參數(shù)會(huì)core掉, 系統(tǒng)不讓.

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2013-05-23 16:31 |只看該作者
改成who了,還是不對(duì)
#include<stdio.h>
#include<unistd.h>
int main(int argc,char *argv[])
{
execlp("who",(char *)0);
printf("argv[0]=\"%s\"\n",argv[0]);
}
[oracle@redflag11012501 ~]$ gcc argc.c
[oracle@redflag11012501 ~]$ ./a.out
oracle   pts/0        2013-05-23 16:05 (10.6.132.43)

論壇徽章:
4
白羊座
日期:2013-09-17 21:59:30技術(shù)圖書徽章
日期:2013-10-12 22:16:03白羊座
日期:2013-10-14 11:01:40雙子座
日期:2013-12-17 18:26:39
9 [報(bào)告]
發(fā)表于 2013-05-23 21:20 |只看該作者
回復(fù) 3# 〇〇
是test程序的argc和argv,而不是調(diào)用execlp的程序的argc和argv。
你好像不知道execlp是做什么的?調(diào)用execlp后,后面的代碼不會(huì)執(zhí)行了。

   

論壇徽章:
0
10 [報(bào)告]
發(fā)表于 2013-05-24 09:19 |只看該作者
井蛙夏蟲 發(fā)表于 2013-05-23 21:20
回復(fù) 3# 〇〇
是test程序的argc和argv,而不是調(diào)用execlp的程序的argc和argv。
你好像不知道execlp是做什 ...

謝謝指導(dǎo)

[oracle@redflag11012501 ~]$ vi aa.c
#include<stdio.h>
int main(int argc,char *argv[])
{
printf("argc=\"%d\"\n",argc);
printf("argv[0]=\"%s\"\n",argv[0]);
}


"aa.c" [新] 6L, 120C 已寫入  
[oracle@redflag11012501 ~]$ gcc aa.c
[oracle@redflag11012501 ~]$ ./a.out
argc="1"
argv[0]="./a.out"
[oracle@redflag11012501 ~]$ mv a.out a
[oracle@redflag11012501 ~]$ vi bb.c
#include<unistd.h>
int main()
{
execlp("./a",(char *)0);
}


"bb.c" [新] 5L, 59C 已寫入  
[oracle@redflag11012501 ~]$ gcc bb.c
[oracle@redflag11012501 ~]$ ./a.out
argc="0"
argv[0]="(null)"
[oracle@redflag11012501 ~]$

[oracle@redflag11012501 ~]$ vi bb.c
#include<unistd.h>
int main()
{
execlp("./a","",(char *)0);
}

"bb.c" 5L, 62C 已寫入  
[oracle@redflag11012501 ~]$ gcc bb.c
[oracle@redflag11012501 ~]$ ./a.out
argc="1"
argv[0]=""
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP