Andorid之jni里面崩溃然后用errno分析结果解决问题
生活随笔
收集整理的這篇文章主要介紹了
Andorid之jni里面崩溃然后用errno分析结果解决问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、問題
在jni里面程序崩潰了,初步定位是這行代碼,下面的結果運行既然小于0,我覺得很奇怪,理論上不應該啊,想不到為什么會小于0
if ((sock_fd = socket(PF_INET, SOCK_STREAM, 0)) < 0) {
2、解決辦法
在文件里面加上#include<errno.h>頭文件,既然這里出錯了,就用errno,然后在這個崩潰地方打印出這個 errno的值,
errno是記錄系統的最后一次錯誤代碼。代碼是一個int型的值,在errno.h中定義。查看錯誤代碼errno是調試程序的一個重要方法。當linux C api函數發生異常時,一般會將errno變量(需include errno.h)賦一個整數值,不同的值表示不同的含義,可以通過查看該值推測出錯的原因.
加上下面的代碼:
LOGE("sock_fd is %d:%d\n", sock_fd, errno);發現errno的值是13,然后馬上查errno值是13的時候,是什么原因導致,
總結
以上是生活随笔為你收集整理的Andorid之jni里面崩溃然后用errno分析结果解决问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C和指针之IO流和缓冲区
- 下一篇: 2017的结尾