그럼 운영체제에서 제공해주는 숨겨진 고급 문법들이 따로 있는거임? 그런것들 보려면 어디 들어가야되? - dc App
Aamjjd(jessijessi112)2022-08-10 17:28
답글
posix나 man 검색해보셈
익명(106.102)2022-08-10 17:29
답글
아 포직스랑 맨 페이지 언어가 답이었네 ㅠ
기본 c언어 책으로는 구현못하고
운영체제 제공 언어를 활용해서 고급함수들을 사용해야 되는거였구만 - dc App
Aamjjd(jessijessi112)2022-08-10 17:43
답글
ㄴㄴ 걔네는 언어라고 부르지 않아요. 우리가 한국어 배울 때 한국어 문법하고 한국어 단어들 배우잖아요 한국어단어==if else while 같은 예약어들, 한국어문법: 쟤네 쓸 때 어떤 순서로 배치해야한다 이렇게 대응됨
익명(106.102)2022-08-10 17:49
답글
책에서 변수명이나 함수명은 맘대로 지으라고 했을 텐데 posix나 man에 나오는 애들은 '윈도우나 리눅스 만든 애들이 자기들 맘대로 지은 이름'임. 또 아래서 말한 phy 레지스터라던지 이런것도 '칩 만든 애들이 자기들 맘대로 지은 주소'임 언어의 영역이 아님
익명(106.102)2022-08-10 17:51
답글
그럼 언어나 문법이라 안하면 그걸 뭐라고 부르나요? 메뉴얼?? - dc App
Aamjjd(jessijessi112)2022-08-10 17:54
답글
보통은 인터페이스라고 부릅니다
익명(106.102)2022-08-10 17:59
답글
세부 구현을 숨기고 사용법만 노출시킨 걸 인터페이스라고 합니다 자동차 운전 할 때 엔진 구조나 기어 구조 몰라도 엑셀 밟으면 앞으로가고 브레이크 밟으면 멈추잖아요 비슷하게 컴퓨터 내부 구조 몰라도 c 문법으로 뭐 호출하면 인터넷 패킷 날아가고 화면에 글씨 써지고 이런식으로 할 수 있게 인터페이스랄 만들어 놓은거임
익명(106.102)2022-08-10 18:04
답글
근데 이 인터페이스도 지들 맘대로 막 만들면 어디에서는 돌아가던 프로그램이 딴컴에서는 안돌아가고 이럴 수 있잖아요? 그래서 인터페이스 우리가 정한 이름대로, 타입대로 만들자고 약속한게 posix 같은 표준들인거임 c 책에서 나오는 printf나 scanf 같은것도 콘솔 입출력을 할 때 이런 이름의 함수(인터페이스)를 쓰자고 약속한거
익명(106.102)2022-08-10 18:07
답글
위 그림에 나오는 socket 이런애들도 인터넷 통신할때는 이런 이름 함수 쓰자고 표준으로 약속한거임 덕분에 우리가 컴퓨터 내부 구조 신경 안쓰고도 저 함수들만 쓸 줄 알면 인터넷 통신을 할 수 있는 거고
익명(106.102)2022-08-10 18:09
답글
아무튼 요점은 컴푸터 작동 방식을 완전히 알고있든 저런 함수들 공부하든 둘 중 하나는 해야 c로 세상 모든 걸 만들 수 있는 겁니다. c 자체는 튜링 완전해서 컴퓨터가 할 수 있는 모든 작업을 작성할 수 있어요 단지 저런 배경지식 모르면 ㅈㄴ 오래 걸리고 귀찮을 뿐이죠
익명(106.102)2022-08-10 18:11
답글
오 포직스 형님 감사합니다 ㅠ 조금 이해됬습니다! 복붙보관해서 공부하겠습니다! - dc App
Aamjjd(jessijessi112)2022-08-10 18:12
그냥 니가 쓰는 윈도우 자체가 c/c++로 만들어졌어 작은거 하나하나가 모여서 큰걸 만들고 그걸 또 모아서 더 큰걸 만드는건데 입문따리는 작은거 하나하나도 벅차하니까 지루한 기본부터 배우는거임
익명(211.114)2022-08-10 17:09
답글
라이브러리 개념이 뭔지는 알음.
그게 궁금한게 아니라,
저 고급함수 구현은 운영체제에서 제공해주는 숨겨진 고급문법으로 따로 해야하는거임?
책에 나와있는 내용으로 못하는거임? - dc App
Aamjjd(jessijessi112)2022-08-10 17:27
답글
저런 거 구현이 궁금하면 임베디드 쪽을 봐야 함. 인터넷 연결하려면 랜선 꽂아야하잖아요 그때 꽂히는쪽을 phy라고 하는데 대충 phy랑 연결된 레지스터나 메모리에 포인터 연산으로 값 던지면 인터넷으로 보내지고 이런식이거든요
고급함수라기 보다는 시스템 콜이라고 운영체제에서 제공해 주는 함수들임. c로 다 구현할 수 있긴 한데 매번 그러면 ㅈㄴ 복잡하고 시간낭비니까, 많이 쓰이는 기능들은 저렇게 미리 좀 구현해놓고 저런서 호출해서 사용할 수 있게 한거
익명(106.102)2022-08-10 17:14
답글
저 함수 써서 tcp udp icmp 같은 걸 쓸 수 있음. 이제 저거 이용해 http를 구현하고 함수로 묶으면 그게 웹 라이브러리인거고
익명(106.102)2022-08-10 17:16
이런식이면 printf도 고급함수임 인자로 문자열 넣었다고 화면에 출력되게 해주는데
익명(124.54)2022-08-10 17:16
답글
아 그럼 printf 함수는 운영체제가 제공해주는 숨겨진 문법이랑 기능들도 구현된거지??
책에 나와있는 내용으로 구현 못하는거 맞지? - dc App
Aamjjd(jessijessi112)2022-08-10 17:37
당연히 됨. 사실 니가 배운 책에서 C언어 문법 비중이 절반 뿐일 거고 나머지는 표준 라이브러리 관련 내용일 거임. 구현은 운영체제에 맡겨 놓은 거임. 운영체제마다 규현 방식이 사소하게 다를 수도 있음. 참고로 저 함수들 <sys/socket.h>에 있는 함수야. - dc App
C 함수랑 운영체제 함수는 구별해야지...
그럼 운영체제에서 제공해주는 숨겨진 고급 문법들이 따로 있는거임? 그런것들 보려면 어디 들어가야되? - dc App
posix나 man 검색해보셈
아 포직스랑 맨 페이지 언어가 답이었네 ㅠ 기본 c언어 책으로는 구현못하고 운영체제 제공 언어를 활용해서 고급함수들을 사용해야 되는거였구만 - dc App
ㄴㄴ 걔네는 언어라고 부르지 않아요. 우리가 한국어 배울 때 한국어 문법하고 한국어 단어들 배우잖아요 한국어단어==if else while 같은 예약어들, 한국어문법: 쟤네 쓸 때 어떤 순서로 배치해야한다 이렇게 대응됨
책에서 변수명이나 함수명은 맘대로 지으라고 했을 텐데 posix나 man에 나오는 애들은 '윈도우나 리눅스 만든 애들이 자기들 맘대로 지은 이름'임. 또 아래서 말한 phy 레지스터라던지 이런것도 '칩 만든 애들이 자기들 맘대로 지은 주소'임 언어의 영역이 아님
그럼 언어나 문법이라 안하면 그걸 뭐라고 부르나요? 메뉴얼?? - dc App
보통은 인터페이스라고 부릅니다
세부 구현을 숨기고 사용법만 노출시킨 걸 인터페이스라고 합니다 자동차 운전 할 때 엔진 구조나 기어 구조 몰라도 엑셀 밟으면 앞으로가고 브레이크 밟으면 멈추잖아요 비슷하게 컴퓨터 내부 구조 몰라도 c 문법으로 뭐 호출하면 인터넷 패킷 날아가고 화면에 글씨 써지고 이런식으로 할 수 있게 인터페이스랄 만들어 놓은거임
근데 이 인터페이스도 지들 맘대로 막 만들면 어디에서는 돌아가던 프로그램이 딴컴에서는 안돌아가고 이럴 수 있잖아요? 그래서 인터페이스 우리가 정한 이름대로, 타입대로 만들자고 약속한게 posix 같은 표준들인거임 c 책에서 나오는 printf나 scanf 같은것도 콘솔 입출력을 할 때 이런 이름의 함수(인터페이스)를 쓰자고 약속한거
위 그림에 나오는 socket 이런애들도 인터넷 통신할때는 이런 이름 함수 쓰자고 표준으로 약속한거임 덕분에 우리가 컴퓨터 내부 구조 신경 안쓰고도 저 함수들만 쓸 줄 알면 인터넷 통신을 할 수 있는 거고
아무튼 요점은 컴푸터 작동 방식을 완전히 알고있든 저런 함수들 공부하든 둘 중 하나는 해야 c로 세상 모든 걸 만들 수 있는 겁니다. c 자체는 튜링 완전해서 컴퓨터가 할 수 있는 모든 작업을 작성할 수 있어요 단지 저런 배경지식 모르면 ㅈㄴ 오래 걸리고 귀찮을 뿐이죠
오 포직스 형님 감사합니다 ㅠ 조금 이해됬습니다! 복붙보관해서 공부하겠습니다! - dc App
그냥 니가 쓰는 윈도우 자체가 c/c++로 만들어졌어 작은거 하나하나가 모여서 큰걸 만들고 그걸 또 모아서 더 큰걸 만드는건데 입문따리는 작은거 하나하나도 벅차하니까 지루한 기본부터 배우는거임
라이브러리 개념이 뭔지는 알음. 그게 궁금한게 아니라, 저 고급함수 구현은 운영체제에서 제공해주는 숨겨진 고급문법으로 따로 해야하는거임? 책에 나와있는 내용으로 못하는거임? - dc App
저런 거 구현이 궁금하면 임베디드 쪽을 봐야 함. 인터넷 연결하려면 랜선 꽂아야하잖아요 그때 꽂히는쪽을 phy라고 하는데 대충 phy랑 연결된 레지스터나 메모리에 포인터 연산으로 값 던지면 인터넷으로 보내지고 이런식이거든요
운체 지원 안받고 저런거 구현하려면 보드에 박아놓은 칩들 데이터시트보고 포인터연산 하면되는데 이거 일반 프로그래머한테 하라시키면 머리터지니까 운체단에서 구현해놓고 저런 함수들 던져주는거임
책에 없던 숨겨진 고급 함수가 뭔 말이노
해당 댓글은 삭제되었습니다.
아닌것 같은데?? 운영체제가 제공해주는 숨겨진 문법들이 따로 있다는데?? - dc App
고급함수라기 보다는 시스템 콜이라고 운영체제에서 제공해 주는 함수들임. c로 다 구현할 수 있긴 한데 매번 그러면 ㅈㄴ 복잡하고 시간낭비니까, 많이 쓰이는 기능들은 저렇게 미리 좀 구현해놓고 저런서 호출해서 사용할 수 있게 한거
저 함수 써서 tcp udp icmp 같은 걸 쓸 수 있음. 이제 저거 이용해 http를 구현하고 함수로 묶으면 그게 웹 라이브러리인거고
이런식이면 printf도 고급함수임 인자로 문자열 넣었다고 화면에 출력되게 해주는데
아 그럼 printf 함수는 운영체제가 제공해주는 숨겨진 문법이랑 기능들도 구현된거지?? 책에 나와있는 내용으로 구현 못하는거 맞지? - dc App
당연히 됨. 사실 니가 배운 책에서 C언어 문법 비중이 절반 뿐일 거고 나머지는 표준 라이브러리 관련 내용일 거임. 구현은 운영체제에 맡겨 놓은 거임. 운영체제마다 규현 방식이 사소하게 다를 수도 있음. 참고로 저 함수들 <sys/socket.h>에 있는 함수야. - dc App
고급함수가 뭐임?
작성자분은 똑같은 C로 짰어도 운영체제에는 뭔가 숨겨진/고급의/신비로운 문법이나 함수가 존재한다고 생각하나보네요ㅋㅋㅋ
숨겨진 고급 문법은 무슨 말이냐
소켓은 운영체제 api라서 winsock이나 bsdsocket 쓰는거지 근데 요즘 ASIO가 대세잖아 iocp나 epoll 써야지