[英]Segmentation fault in libusb 1.0 program when run as user, not as sudo
我正在編寫一個使用libusb 1.0和cImg的相機捕獲程序。 它連接到我的Atik 314L天文相機,並捕獲圖像以顯示在屏幕上。 當以常規或超級用戶身份編譯時,它可以很好地編譯,以根用戶身份運行時,它可以很好地運行,但是以任何其他方式運行時,都會產生分段錯誤 。
我正在使用Code :: Blocks ,並且調用堆棧顯示在調用usb_control_msg()
函數時發生分段錯誤:
#0 (usb_control_msg(dev=0x0, requesttype=64, request=160, value=58880, index=0 bytes=0x7fffffffe5df "\001 \346\377\377\377\177", size=1, timeout=500) (linux.c:152)
我對Linux環境中的編程很陌生,而且我不確定該如何為普通用戶運行它。 到目前為止,這是我嘗試過的步驟:
/etc/udev/rules.d
,如下所示:PROGRAM =“ / home / [用戶名] / git / camera / prog”,MODE =“ 0660”,GROUP =“ camera” 我正在學習如何進行調試,因此,如果您需要日志或其他任何東西以查看有什么問題,請告訴我。
您可能需要使用諸如fnctl()
類的功能來設置/獲取設備的標志,並且根據您的要求,您可以設置文件訪問模式( O_RDONLY / O_WRONLY / O_RDWR
)和文件創建標志( O_CREAT / O_EXCL / O_NOCTTY / O_TRUNC
)。 但是,在Linux上,此命令只能更改O_APPEND, O_ASYNC, O_DIRECT, O_NOATIME
和O_NONBLOCK
標志。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.