當前位置:首頁 » 操作系統 » 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-01-25 02:15:57 瀏覽:147
root鎖機序列號演算法 發布:2025-01-25 02:14:26 瀏覽:152
廣州萬科海上傳奇 發布:2025-01-25 02:13:48 瀏覽:562
空調壓縮機結霜了 發布:2025-01-25 02:01:20 瀏覽:130
怎麼給路由器設置代理伺服器 發布:2025-01-25 01:54:49 瀏覽:209
sqlserver的不等於 發布:2025-01-25 01:51:47 瀏覽:274
ftpup上傳三個文件 發布:2025-01-25 01:38:15 瀏覽:762
錄音加密忘記 發布:2025-01-25 01:37:29 瀏覽:501
閑魚賣腳本 發布:2025-01-25 01:37:24 瀏覽:157
密碼匯款在什麼區域了兌付 發布:2025-01-25 01:36:49 瀏覽:146