리눅스와 윈도우간 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 하이라이트 꺼짐
라즈베리파이를 통한 터미널 통신 (non-canonical)
#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라는 글자를 발신하면 받는 쪽에서 test라는 글자와 함께 글자수가 출력된다. (test\n까지 5글자)
발신이 완료되면 발신완료 문자와 함께 글자수가 출력된다. (write complete : 5)
'Linux & Network' 카테고리의 다른 글
2016 04 18 TCP/IP / 유닉스 프로그래밍 (0) | 2016.04.18 |
---|---|
2016 04-14 소켓 (0) | 2016.04.15 |
20160331_리눅스 터미널과 지역변수 (0) | 2016.03.31 |
20160330_리눅스 터미널 (0) | 2016.03.30 |
라즈베리 파이 원격제어와 C언어 (0) | 2016.03.28 |