[問題] 一段 arguement 問題

作者: gecer (gecer)   2017-07-02 13:11:05
execlp("ls", "ls", (char *)NULL )
請問版上的大大們 上面語法 (char *)Null是什麼意思
作者: james732 (好人超)   2017-07-02 13:15:00
強制轉型要符合function的要求
作者: steve1012 (steve)   2017-07-02 13:41:00
Excel 接一串字串 然後你最後一個參數要放null他才知道停了但是他只接char pointer 所以這邊做個轉型
作者: Killercat (殺人貓™)   2017-07-02 15:13:00
這算C++09的餘毒 往後傳nullptr就不用這樣轉了不過說真的(char *)有點多餘 應該不用加也能過才對
作者: LPH66 (-6.2598534e+18f)   2017-07-02 18:32:00
樓上正好在這裡不對, 因為 execlp 是可變參數第三參數之後是被 ... 抓起來的, 所以放 NULL 會變成數字 0必須要真的傳進一個指標才行, 所以才需要 (char*) 轉型https://linux.die.net/man/3/execlp> since these are variadic functions, this pointer must> be cast (char *) NULL.所以理論上單傳 nullptr 也是錯的, 也需要轉型(因為 nullptr 的型態是 std::nullptr_t)
作者: uranusjr (←這人是超級笨蛋)   2017-07-02 21:12:00
傳 "" 可以嗎
作者: steve1012 (steve)   2017-07-02 23:24:00
字元null記得是'\0'空字串=\=null
作者: james732 (好人超)   2017-07-02 23:39:00
原來是可變參數,我沒先查就推文了QQ
作者: uranusjr (←這人是超級笨蛋)   2017-07-03 00:58:00
@steve1012 啊這裡就不是要字元 null 啊...不過根據文件 (剛剛懶得看想說應該會有人直接回答) 它應該就是需要 NULL pointer 所以空字串也是不行
作者: s25g5d4 (function(){})()   2017-07-05 00:31:00
我還想了一下 excel 為什麼要吃 null... 原來是 exec 啊
作者: Killercat (殺人貓™)   2017-07-05 01:48:00
ouch...居然犯了這低能錯誤 XD

Links booklink

Contact Us: admin [ a t ] ucptt.com