一些命令上的问题
1.如何查询一个函数的头文件
2.如何显示代码行数
网络编程(TCP)
1.socket()函数的返回值问题
首先socket()的返回值为文件描述符
为啥是3呢?首先LCD(printf)默认是文件描述符1(标准输出),键盘(scanf)默认0(标准输入),出错处理默认2(标准出错),其他文件描述符从3开始累计。
相似的有 open(),它返回的也是一个从3开始的文件描述符。
2.bind()的参数问题
a.
&addr 取结构体成员变量的首地址,这个地址用*来表示,这样强制转换的目标可以合法表示,(struct sockaddr_in *)&addr 就是一个地址(指针),指向sockaddr_in 结构
b.
这里 struct sockaddr 而不是 struct sockaddr_in ,
c. addr.sin_port,addr.sin_family,addr.sin_addr.s_addr,这些成员变量的初始化要放在bind()前面哦
类似的是client中的connect()函数
d.
为啥用fd?connect()函数成功返回值是0,client中socket返回一个文件描述符,该文件用于网络通信,accept返回一个文件描述符,接收client数据。
e bind error :
可能是地址发生改变。
3.双向通信应用
a.rw_ret 没有更新过程,会导致第二个用户无法上传数据
网络编程(UDP)
函数:
驱动程序
1.gcc更新到自己需要的版本:
看下面
2.Makefile的学习
单独写一个 h.c 时,然后make会报错:
然后我想着用老师的源码结果仍报错:
我该怎么修改Makefile?
问题:签名有误,内核认为被污染所以报错,无法打印出myopen和myclose函数里面的内容!
不管它了,不碍事(暂时看来)
没有修改Makefile,只需要更换gcc版本: sudo apt install gcc-x,x为需要版本
3.ioremap函数
硬件
有一个参考学习:JZ2440开发板与电脑通过网线直连,实现开发板、虚拟机、PC机三者互Ping,并成功挂接网络根文件系统_jz2440与虚拟机网线直连-CSDN博客
1.无法联网:
2.ping的问题:
a.有网线的版本:https://blog.csdn.net/masudong/article/details/105009743
但是我的网络
这不能吧
首先主板:
这样我们把网线连上去,然后设置以太网,勾选桥接,然后设置IP地址,一个网段即可。
其次对于主板的ping:记得是虚拟机是桥连模式哦
b.无网线:暂时noway
3.主板不能进行这么多的活动,所以需要虚拟机运行后把关件文件共享到主板上。
重点:怎么共享?
mount -t nfs -o nolock 169.254.106.6:/work/nfs_root/first_fs /mnt
但是出现错误:
mount: RPC: Unable to receive; errno = Connection refused
参考:jz2440:Ubuntu与开发板之间互传文件(3)_连接上开发板但无法传文件-CSDN博客
问题:指令:mount -t nfs -o tcp,intr,nolock,rsize=1024,wsize=1024 192.168.1.20:/home/gyfyd/share /kkk,报错:这个是因为NSF默认UDP协议,改为TCP即可-otcp
4.arm-linux-gcc 安装报错
一直显示无此命令!
5.
linux摄像头课程设计
1.
./demo 黑屏
没有解决但不影响结果!
2.实时传输视频延迟高