calm86104个人页面-阿里云开发者社区

个人头像照片 calm86104 TA的个人档案
0
11

个人介绍

暂无个人介绍

擅长的技术

获得更多能力
通用技术能力:

暂时未有相关通用技术能力~

云产品技术能力:

暂时未有相关云产品技术能力~

阿里云技能认证

详细说明
  • 高分内容
  • 最新动态
  • 文章
  • 问答
正在加载, 请稍后...
暂无更多信息
正在加载, 请稍后...
暂无更多信息
正在加载, 请稍后...
暂无更多信息
  • 回答了问题 2019-07-17

    c中free函数的一些问题探讨

    while(p != NULL){

    free(p);
    p = p->next;

    }
    上面这一段是 链表结构,同时,这一段是错误的。因为先释放,后引用。

    我们来说这个问题“ 一次性分配较大内存,free如何获知该内存大小并完全释放,实现机制是”
    可以参考这个:
    https://blog.csdn.net/mmshixing/article/details/51679571

    看不懂?没关系,简单来说,你看到的内存,并不是真正的内存。malloc 机制会额外维护一套数据,里面保存了
    当前的数据的大小、位置等等,他都帮你做了。所以,你不必关心你申请了多少内存。

    踩0 评论0
  • 回答了问题 2019-07-17

    C语言中连接两个字符串的方法都有哪些

    必须提一提 strcat 函数了。

    include

    char strcat( char str1, const char *str2 );
    功能:函数将字符串str2 连接到str1的末端,并返回指针str1
    str1 和 str2 不能 overlap,同时,必须保证 str1 有足够的空间

    踩0 评论0
  • 回答了问题 2019-07-17

    c语言如何实现事件循环

    你首先要确定是哪类的 EVENT。
    好吧,我来做一个通用的回答。

    通畅,在 linux 端,我们会使用 epoll 函数来做事件循环:
    如下举例:

    image

    踩0 评论0
  • 回答了问题 2019-07-17

    在Wi-Fi 热点模式下,如何获取周围的打开wifi 的终端设备列表

    很有意思。你需要可能是扫描数据。换句话说,你需要 scan entry。
    这个问题就会变成,我有没有办法 拿到 scan entry

    毫无疑问,答案是 YES
    但是怎么拿呢,就要区分不通的芯片厂商了。
    一种简单的方式是,直接找到芯片的(Wi-Fi芯片)的命令行手册,查找里面的说明,是否有两条命令:
    一条是,开启扫描模式
    一条是,获取扫描表项。

    幸运的是,我知道,iwinfo 命令中,有一个 scan 参数可以进行扫描,可以间接达到你的目的。
    如果不支持 iwinfo,那么就重新编译固件,将这个命令编译进去(或者安装进去)

    如果上面的方式搞不定,你就要修改驱动代码,
    在 beacon 和 probe 的处理程序中,将 扫描的表项上报至用户态。这个会麻烦一点。

    踩0 评论0
  • 回答了问题 2019-07-17

    linux下除了iwlist之外的其他扫描wifi热点的方法

    还有一个命令叫做 iwinfo interface scan
    不过既然已经打印出了不支持,恐怕就是驱动不支持吧。

    你可以试着查找一下你的设备的网卡型号,上网搜索一下关于这个网卡的资料,大部分芯片厂商
    除了实现一些基本的通用命令之外,还会有一些私有的命令。
    例如:
    iwpriv 类命令。

    试试看

    踩0 评论0
  • 回答了问题 2019-07-17

    ios5 wifi 页面跳转

    有意思的问题。我来说一下把。
    这实际上是由 手机特性来决定的。

    portal 认证是一个非标准的协议,是由手机端实现的。也就是说,这个页面我(也就是厂商)想怎么做就怎么做。
    有些厂商认为,我既然实现的是一个 portal 认证,那么主要的目的就是为了让用户登陆,用户登陆完成后,就可以上网了,
    我为了体验更好,为什么还要停留在这个页面呢?

    综上所述,无解。在能够不使用 portal 的场景,尽量不要使用。

    踩0 评论0
  • 回答了问题 2019-07-17

    关于Android wifi密码不保存到手机WIFI连接当中也能连接WIfi?

    这是驱动的特性决定的,或者说,是Wi-Fi芯片厂商给予的驱动特性决定的。芯片厂商并不认为,Wi-Fi 密码是一个非常私密的物件,相比较于银行密码此类的。

    实际上,密码可以分为两种,
    一种是保存在 内存中,这种情况,无法持久化,也就是说,手机断电,下次你再连接同样的 Wi-Fi 就同样会弹出密码
    一种是保存在手机 flash 上面(包括 TF 卡等),以文件的形式存在,手机的 Wi-Fi 在启动时候,会读取密码,并将密码下发到驱动中。

    一般来将,Wi-Fi 是作为配置存在的,也就是说可以持久化,所以一般的形式是以密码存在文件中,只不过,用户必须root可以看到。

    如果你想做到手机配置信息里查看不到保存的密码,可以有两种做法:

    1. 手动修改这台设备的 脚本,以 C 语言的代码编写一个程序(java也可以),将密码加密后存储,并且,在下驱动的时候,解密,下发驱动
    2. 不持久化存储,修改上层脚本,不做存储就可以了,只不过,每次开关 Wi-Fi(或手机重启后),都需要输入密码
    踩0 评论0
  • 回答了问题 2019-07-17

    写好的.bin文件在linux下运行,调用出错,请解决。

    image
    如上图所示,显然是 红框部分的 符号找不到了。
    你需要查看你的代码中,有没有这个符号,并且确认是否在使用这个符号(或者是包含此符号所在的 运行库)

    踩0 评论0
  • 回答了问题 2019-07-17

    有哪些常用的Linux使用技能?

    我再贴两个,以供参考:
    Bash_Shortcuts_1
    Bash_Shortcuts_2

    踩0 评论0
  • 回答了问题 2019-07-17

    SSH登录云服务器失败

    连接被拒绝。一个是 你使用的账号没有权限,一个是 SSH 服务压根就没开(或者没有在标准端口上面开启)。
    确认这两个是否有问题。

    踩0 评论0
  • 回答了问题 2019-07-17

    请问C语言中位运算有什么用啊,一般都在哪些项目会使用到?

    有意思的问题,我来小答一下,以抛砖引玉。
    目前我所知道的有两个:
    第一种情况: 如上面同学所说,提升运算速度。
    举个例子:
    int i = 2;
    int k = i * 1024;

    上面这个例子,在计算 k 的值,一般我们都会这么写。
    这么写有问题吗?
    当然没有问题,还相当标准。
    但是这么写对性能没有什么帮助,如果我们清楚位运算会更快,那么驱动或者硬件的老手就会这么写:
    k = i << 10;

    当然性能上,对于大型服务器,不会因为你写了这么一句话,就会提升很多,但是如果是单片机的话,可能就会快很多。
    还有人问,大部分我可能不是 乘以 1024,而是 乘以 1000,这种情况岂不是不行了。

    我回答是:分情况。如果你的数值是约数,不需要精确的话,那么你依然可以这么写,如果是需要精确数值的话,恐怕不行。

    第二种情况:减少内存损耗,好吧,也是因为单片机的原因。
    举个例子:如果我有 4096 个成员,要标志,4096 个成员,是男是女(比如 1 是男,0 是女),大部分情况下,我们会这么写:
    unsigned char member[4096]
    内存损耗为 sizeof(member) == 4096 个字节

    但是如果我们可以这么定义:
    uint32_t member[128]
    内存损耗为 sizeof(member) == 128 * 4 = 512 个字节 = 4096 位
    也就是说,每一位代表一个成员的性别,1 是男,0 是女,是不是会节省很多内存呢?

    踩0 评论0
正在加载, 请稍后...
滑动查看更多