當前位置:首頁 » 操作系統 » linuxc的函數返回值

linuxc的函數返回值

發布時間: 2025-01-24 19:35:23

1. linux c函數返回值是在棧中還是寄存器

函數的返回值是在寄存器中,但僅限於返回的是值。
如果返回的地址,並且這個地址是個局部變數的地址,那麼就是在棧上,所以我們不建議返回這樣的地址結果。
如果返回的是一個malloc或者new的變數的地址,就是在堆上。如果要返回地址,建議這樣做,還要注意使用完成後進行內存釋放

2. linux C 編程,用 getenv 函數獲取環境變數時,返回值為什麼是整型的

getenv()返回字元串指針。函數原型是: char * getenv(const char *name);
通過環境變數的名字獲取值。用整形列印當然是數字了,因為它是指針。你換成%s列印試試。

環境變數裡面沒有這個名字。

你確定警告是對的這行代碼嗎?

3. linux下c語言編程read()函數的問題

返回-1的時候,要根據錯誤碼來判斷原因,請看下面的函數說明:

表頭文件 #include<unistd.h>
定義函數 ssize_t read(int fd,void * buf ,size_t count);
函數說明 read()會把參數fd 所指的文件傳送count個位元組到buf指針所指的內存中。若參數count為0,則read()不會有作用並返回0。返回值為實際讀取到的位元組數,如果返回0,表示已到達文件尾或是無可讀取的數據,此外文件讀寫位置會隨讀取到的位元組移動。
附加說明 如果順利read()會返回實際讀到的位元組數,最好能將返回值與參數count 作比較,若返回的位元組數比要求讀取的位元組數少,則有可能讀到了文件尾、從管道(pipe)或終端機讀取,或者是read()被信號中斷了讀取動作。當有錯誤發生時則返回-1,錯誤代碼存入errno中,而文件讀寫位置則無法預期。
錯誤代碼 EINTR 此調用被信號所中斷。 EAGAIN 當使用不可阻斷I/O 時(O_NONBLOCK),若無數據可讀取則返回此值。 EBADF 參數fd 非有效的文件描述詞,或該文件已關閉。

熱點內容
伺服器硬碟怎麼裝台式電腦上 發布:2025-03-05 06:27:34 瀏覽:706
什麼安卓模擬器可以截圖掃碼 發布:2025-03-05 06:05:04 瀏覽:712
源網路硬碟源碼 發布:2025-03-05 05:56:16 瀏覽:979
拉力競速安卓用什麼手柄 發布:2025-03-05 05:37:13 瀏覽:895
C編譯多個 發布:2025-03-05 05:21:16 瀏覽:508
ftp有cd命令嗎 發布:2025-03-05 04:47:20 瀏覽:576
雲伺服器比物理機的優勢 發布:2025-03-05 04:46:05 瀏覽:467
俺媽密碼是什麼 發布:2025-03-05 04:40:46 瀏覽:160
yacclex編譯器 發布:2025-03-05 04:35:37 瀏覽:151
安卓相片怎麼轉另一個手機 發布:2025-03-05 04:23:40 瀏覽:545