리눅스와 윈도우간 c언어 파일은 호환되나, 실행파일은 그 운영체제에서만 호환된다.
c언어의 호환성
*.c파일을 열어보면 개행문자는 메모장에서는 제대로 처리되지 않지만,
visual studio 등의 프로그램으로 열면 개행문자가 제대로 처리된 소스를 볼 수 있다.
도스창 명령어
dir >>1.txt
redirection : 출력방향을 1.txt파일로 보냄. 파일을 열어보면 dir의 내용이 들어가있는 걸 볼 수 있다.
copy main.c smart.c // main.c파일을 smart.c파일로 복사한다.
copy main.c + smart.c // main.c파일과 smart.c 파일을 합친다.
type 명령어 : 파일의 내용을 화면에 텍스트로 출력한다.
type main.c // main.c의 내용을 화면에 출력
type *.c // 디렉토리에 있는 모든 *.c파일의 내용을 화면에 출력
리눅스에서 터미널 명령어
리눅스는 명령어가 틀리다. type대신에 cat명령어를 통해 파일의 내용을 화면에 출력한다.
>는 리다이렉션 명령어.
cat a.c b.c > c.c
cat test2.c>>test.c
cat test2.c >> test.c 명령을 하면 test2.c의 텍스트가 test.c 텍스트 최하단으로 복사된다.
visual editor 명령어
J 하면 아래위의 줄이 붙는다. (join)
/ 찾고싶은 키워드
n 다음 찾기
shift n 이전 찾기
:noh 하이라이트 꺼짐
라즈베리파이를 통한 터미널 통신 (canonical)
아래 pdf파일과 UNIX 고급 프로그래밍 책을 통해 자세히 공부할 수 있다.
(리처드스티븐스 외/류광 역)
소스 (주석확인해서 read, write 부분만 바꿔주면 된다.)
#include <stdio.h>
#include <stdlib.h>
#include <strings.h>
#include <fcntl.h>
#include <termios.h>
#include <sys/types.h>
#include <sys/stat.h>
#define SPEED B115200
#define SPORT "/dev/ttyAMA0"
int main(void)
{
char cBuff[255];
int iDev = 0;
int iRet = 0;
struct termios stOldState;
struct termios stNewState;
iDev = open(SPORT, O_RDWR | O_NOCTTY);
if(0>iDev)
{
perror(SPORT);
exit(-100);
}
tcgetattr(iDev, &stOldState);
bzero(&stNewState, sizeof(stNewState));
stNewState.c_cflag = SPEED | CRTSCTS | CS8 | CLOCAL | CREAD;
stNewState.c_iflag = IGNPAR | ICRNL;
stNewState.c_oflag = 0;
stNewState.c_lflag = ICANON;
bzero(stNewState.c_cc, NCCS);
stNewState.c_cc[VMIN] = 1;
tcflush(iDev, TCIFLUSH);
tcsetattr(iDev, TCSANOW, &stNewState);
iRet = write(iDev, "test\n", 5);
//iRet = read(iDev, cBuff, 255);
//cBuff[iRet] = 0;
//printf("[%s]:[%d]\n", cBuff, iRet);
printf("write complete : %d\n", iRet);
tcsetattr(iDev, TCSANOW, &stOldState);
close(iDev);
return 0;
}
gpio 도면을 보면 8, 10번 핀이 각각 TX, RX임을 알 수 있다.
라즈베리 파이 8,10번핀에 꼽아준다.
결과 :
test라는 글자를 발신하고 발신이 완료되면 발신완료 문자와 함께 글자수가 출력된다. (write complete : 5)
받는 쪽에서는 test라는 글자와 함께 글자수가 출력된다. (test\n까지 5글자)
'코스웨어 > 16년 스마트컨트롤러' 카테고리의 다른 글
20160323_김도관_업무일지_시리얼통신3_저항연결 (0) | 2016.04.03 |
---|---|
20160322_김도관_업무일지_시리얼통신2 (0) | 2016.04.03 |
20160321_김도관_업무일지_시리얼통신1 (0) | 2016.04.03 |
20160403_김가연_스터디일지_섭씨 화씨 변환 소스 (7) | 2016.04.03 |
WINSCP -SFTP 및 FTP 클라이언트 프로그램 (0) | 2016.04.02 |
20160401_장진웅_업무일지_로봇제어_터미널2 (1) | 2016.04.01 |
라즈베리파이 메모리 주소 고정 영구적용 방법 (0) | 2016.04.01 |
2016_04_01_업무일지_노태경 (0) | 2016.04.01 |