#include <stdio.h>
#include <assert.h>
#include <sys/time.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <termios.h>
#include <sys/ioctl.h>
int main(void)
{
int fp,err;
unsigned char buff[20];
unsigned char send_buff[20];
struct termios options;
printf("change1\n");
fp = open("/dev/console",O_RDONLY); // 改变console
ioctl(fp,TIOCCONS);
close(fp);
fp = open("/dev/ttySAC0",O_RDWR|O_NOCTTY|O_NDELAY|O_NONBLOCK); //打开串口0读写
if(fp == -1)
{
perror("open:");
return -1;
}
tcgetattr(fp,&options);
cfsetispeed(&options,B115200);
cfsetospeed(&options,B115200);
options.c_cflag |= (CLOCAL|CREAD);
tcsetattr(fp,TCSANOW,&options);
write(fp,"hello world!\n",15);
while(1)
{
while(read(fp,buff,4) == 4)/*read(fp,buff,1)>0)*/
{
write(fp, buff,4);
}
}
close(fp); //关闭串口0
fp = open("/dev/console",O_RDONLY); //恢复console 到串口0
ioctl(fp,TIOCCONS);
close(fp);
printf("change2\n");
return 0;
}
当然也可以修改内核选项使其不生成/dev/console设备节点