作者gecer (gecer)
看板C_and_CPP
标题[问题] 一段 arguement 问题
时间Sun Jul 2 13:11:05 2017
execlp("ls", "ls", (char *)NULL )
请问版上的大大们 上面语法 (char *)Null是什麽意思
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.34.174.37
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1498972267.A.0B4.html
1F:推 james732: 强制转型要符合function的要求 07/02 13:15
2F:推 steve1012: Excel 接一串字串 然後你最後一个参数要放null他才知道 07/02 13:41
3F:→ steve1012: 停了 07/02 13:41
4F:→ steve1012: 但是他只接char pointer 所以这边做个转型 07/02 13:42
5F:→ Killercat: 这算C++09的余毒 往後传nullptr就不用这样转了 07/02 15:13
6F:→ Killercat: 不过说真的(char *)有点多余 应该不用加也能过才对 07/02 15:14
7F:推 LPH66: 楼上正好在这里不对, 因为 execlp 是可变参数 07/02 18:32
8F:→ LPH66: 第三参数之後是被 ... 抓起来的, 所以放 NULL 会变成数字 0 07/02 18:33
9F:→ LPH66: 必须要真的传进一个指标才行, 所以才需要 (char*) 转型 07/02 18:33
11F:→ LPH66: > since these are variadic functions, this pointer must 07/02 18:34
12F:→ LPH66: > be cast (char *) NULL. 07/02 18:34
13F:→ LPH66: 所以理论上单传 nullptr 也是错的, 也需要转型 07/02 18:35
14F:→ LPH66: (因为 nullptr 的型态是 std::nullptr_t) 07/02 18:36
15F:→ uranusjr: 传 "" 可以吗 07/02 21:12
16F:推 steve1012: 字元null记得是'\0' 07/02 23:24
17F:→ steve1012: 空字串=\=null 07/02 23:25
18F:推 james732: 原来是可变参数,我没先查就推文了QQ 07/02 23:39
19F:→ uranusjr: @steve1012 啊这里就不是要字元 null 啊... 07/03 00:58
20F:→ uranusjr: 不过根据文件 (刚刚懒得看想说应该会有人直接回答) 它应 07/03 01:01
21F:→ uranusjr: 该就是需要 NULL pointer 所以空字串也是不行 07/03 01:01
22F:推 s25g5d4: 我还想了一下 excel 为什麽要吃 null... 原来是 exec 啊 07/05 00:31
23F:推 Killercat: ouch...居然犯了这低能错误 XD 07/05 01:48