請問回傳的問題? - Linux

Linda avatar
By Linda
at 2017-10-30T01:24

Table of Contents

小弟正在學raspberry 由於之前沒接觸Linux系統
有個問題已經困擾小弟好幾個禮拜了
算是跟Linux的Virtual File System比較有關
就是在寫驅動程式的時候 裡面很多區塊都會寫到以下這個

ret = 某個函數()
然後最後會有個return ret

可是我一直搞不明白他要return(回傳)到哪裡去
有時侯譬如說read write的方法
我問過老師 他說在驅動程式裡的return值會先交給VFS處理
然後VFS轉換後再傳給應用程式
所以return的value在kernel看跟在應用程式看的不見得一樣
而且很困擾我的一點是 那個ret我在程式中看不到他需要被使用在其他任何地方
而且常常這段程式一個ret=()
下一段程式又是用相同變數ret=()使用在不同的函數做不一樣的事情
然後有時候要return ret, 但有時候又只return 0. 而且不知道要給誰用

記得以前在學C的時候 每個函數return值都有用意可能會被其他地方用到
所以對於return的想法沒什麼疑問 但這邊我真的搞不太懂這些回傳的意義是什麼
對於各位高手可能是很基本的東西
希望有高手能指點一下 謝謝

--
Tags: Linux

All Comments

Kama avatar
By Kama
at 2017-11-03T20:50
告訴呼叫者自己有沒有正確執行完
Joe avatar
By Joe
at 2017-11-07T06:14
去讀 API reference manual
Kama avatar
By Kama
at 2017-11-08T23:24
原po是程式新手?
Emily avatar
By Emily
at 2017-11-11T14:53
你有注意到goto嗎
Caitlin avatar
By Caitlin
at 2017-11-12T23:41
哦我看懂你的問題了... 你沒有疑惑驅動的函式是誰呼叫的?
或是怎麼被呼叫的
Odelette avatar
By Odelette
at 2017-11-14T11:09
喔喔,看懂你的問題了orz
Rachel avatar
By Rachel
at 2017-11-15T07:31
感覺你想的怪怪的... manual說的回傳值是指copy_from_user
Michael avatar
By Michael
at 2017-11-18T10:06
呼叫之後的回傳值 0或非0代表copy_from_user有沒有成功執行
Hedda avatar
By Hedda
at 2017-11-21T09:46
不是說執行之後,你呼叫的函式還要另外回傳0或非0
Wallis avatar
By Wallis
at 2017-11-22T14:45
所以跟VFS什麼的都完全沒有關係
Kyle avatar
By Kyle
at 2017-11-25T20:36
這邊的 ret=len 是多餘的 跟你說的另外兩個寫法一致
但這三種寫法有沒有差 也是編譯器先判定的 跟VFS也完全沒關
Noah avatar
By Noah
at 2017-11-28T02:51
而且這種kernel address space和user address space之間的
Gilbert avatar
By Gilbert
at 2017-11-28T20:35
資料搬移是涉及到memory management的設計 跟file system的
Necoo avatar
By Necoo
at 2017-11-29T22:47
VFS無關
Anonymous avatar
By Anonymous
at 2017-11-30T16:55
還是你想說 "virtual memory"
Hardy avatar
By Hardy
at 2017-12-04T15:53
你的範例怪怪的. 看 kernel 使用 copy_from_user
的其他 driver 應該就能理解
Suhail Hany avatar
By Suhail Hany
at 2017-12-05T14:11
我突然覺得你應該發在 LinuxDev 版之類的...
Charlotte avatar
By Charlotte
at 2017-12-07T03:02
總之 demo_write() 裡面呼叫的那些函式 都會有回傳值 只是
看demo_write()裡面要怎麼處理 demo_write()本身的回傳值
Ethan avatar
By Ethan
at 2017-12-10T09:36
則是呼叫 demo_write() 的函式處理的... 所以你應該先知道
誰會呼叫 demo_write() 以及呼叫 demo_write() 的函式預期
demo_write() 回傳什麼結果給他
Brianna avatar
By Brianna
at 2017-12-10T17:47
這不管是不是kernel程式,而是跟一般 C 程式的概念都一致
並不會因為今天是kernel程式就會有處理上面的不同
Annie avatar
By Annie
at 2017-12-10T23:13
好的 了解你的意思了 感謝!

ubuntu新手備份請教

Elma avatar
By Elma
at 2017-10-28T18:34
linux菜鳥碰到棘手的問題,想請教各位經驗豐富的老手大大: 手邊有一台多年沒用的1U伺服器主機要設備更新, 主機系統是ubuntu7.04伺服器文字版,內裝是年代久遠的IDE硬碟 現在卡在忘記進入系統的密碼,無法直接備份內部資料, 也不知資料能否跟現在的ubuntu相容... 在可以進 ...

啟動EDA軟體出現問題?

Xanthe avatar
By Xanthe
at 2017-10-28T07:57
※ 引述《bridgepons》之銘言: : 各位PTT_linux版友 大家好~ : 我在centos 6.9 裝了EDA軟體cadence的ic514舊版的,考試要用到~ : 我照著網路找來的安裝程序裝完了,在terminal視窗輸入icfbandamp; : 不會啟動EDA軟體 : ...

指紋辨識的支援?

Anonymous avatar
By Anonymous
at 2017-10-27T14:43
就是, linux 上指紋辨識的支援度如何? 我目前是用 debian 。 舊筆電壞了,要買新的, 看最近的筆電都有這個功能。 本來以為 linux 不支援,就都不考慮。 但看上的機型都有指紋辨識 atat google 一下 ubuntu 好像可以動。 想請教指紋辨識在 linux 下的運作流程是? 安 ...

Hyper-V下GRUB調整/dev/fb0解析度

Edith avatar
By Edith
at 2017-10-27T12:47
讓我瞎忙了好久 =.=and#34; 需在/etc/default/grub下修改 GRUB_CMDLINE_LINUX_DEFAULT=and#34;video=hyperv_fb:###x###and#34; ###x###是你所希望的解析度 可用下圖指令查看輸出值是否正確: https://i ...

有關大量部署ssh key金鑰的問題

Vanessa avatar
By Vanessa
at 2017-10-26T20:31
最近想要透過一台Linux電腦控管大量的伺服器,所以想要交換SSH KEY 但是我的伺服器IP幾乎都不連續,目前是一台一台過ssh-copy-id的方式進行,但是這樣 太? 請問大家有不錯的方法或工具可以推薦嗎? 感謝~! -- Sent from my Windows - ...