Github入门

1.今晚学习了Github的入门,公司需要用到Github,正好自己也想学习这方面。里面应该有很多的开源项目,等熟悉以后,可以在里面找找与自己课题有关的工程。学习网址就是Github的官方网址:
https://guides.github.com/activities/hello-world/

2.总结一下今天在公司出现的问题:

(1)打开串口的时候,由于参数设置为:

 fd = open( port, O_RDONLY|O_NOCTTY);
其中 O_RDONLY 是只能读的意思,所以在我写的SEND()函数中,无法对串口发送报文指令,所以首先将该指令修改为O_RDWR,这样就允许我们可以对串口进行读写操作。port是我们的串口,linux中,通常为ttyUSB0

(2)fdopen函数:文件描述词转为文件指针

头文件:
 #include <stdio.h>
定义函数:
FILE * fdopen(int fildes, const char * mode);
函数说明:fdopen()会将参数fildes 的文件描述符, 转换为对应的文件指针后返回.

举例:
FILE *aurt=fdopen(fd,"wb+")

该函数的mode有一下几种情况:

mode有下列几种形态字符串:
r 打开只读文件,该文件必须存在。
r+ 打开可读写的文件,该文件必须存在。
rb+ 读写打开一个二进制文件,允许读数据
w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
wb+ 读写打开或建立一个二进制文件,允许读和写。
w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件

(3)fwrite函数:

  C语言函数,向文件写入一个数据块  。
size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream);
注意:这个函数以二进制形式对文件进行操作,不局限于文本文件
返回值:返回实际写入的数据块数目
(1)buffer:是一个指针,对fwrite来说,是要输出数据的地址;
(2)size:要写入内容的单字节数;
(3)count:要进行写入size字节的数据项的个数;
(4)stream:目标文件指针;
(5)返回实际写入的数据项个数count。
举例:

#include <stdio.h>

#include <string.h>

int main()

{

	 int fd; 	
 	 fd = open( port, O_RDONLY|O_NOCTTY);
      if(fd<0)
      {
	printf("open error");
      }
	FILE *aurt;
	int error;
	unsigned char send_buf[15]={};
	aurt=fdopen(fd,"rb+");
	error=fwrite(send_buf,sizeof(char),15,aurt);//返回实际写入的数据项个数。
	if(error<0)
	{
		printf("fwrite error");
	}
}
(4)fread 函数:size_t fread ( void *buffersize_t sizesize_t countFILE *stream) ;

注意:这个函数以二进制形式对文件进行操作,不局限于文本文件
返回值:返回实际读到的数据块数目
(1)buffer:是一个指针,对fread来说,是用于接收数据的地址;
(2)size:要读取内容的单字节数;
(3)count:要进行读取size字节的数据项的个数;
(4)stream:目标文件指针;
(5)返回实际读取的数据项个数count。

FILE *aurt;

int err;

aurt=fdopen(fd,"wb+");

err=fread(recv_buf,sizeof(char),15,uart);

if (err<0)

{

printf("fread error");

}

(6)注意:在向串口发送报文指令的时候,打开了一次fd,在读取的时候,不需要再次打开,不然容易出错,并且在fdopen以后,最后要加上fclose(uart),释放数据流。

(7)最后转载一篇,写的挺好的:

点击打开链接















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值