'전체 글'에 해당되는 글 51건

  1. 2017.02.13 [C/C++] Bit Field, 비트 변수 ':'
  2. 2016.12.14 [PHP] 접속 IP 확인, $_SERVER
  3. 2016.11.10 [C/C++] fopen 함수의 옵션값 정리
2017. 2. 13. 16:01

C 언어에서 Bit 단위로 변수를 지정하고 싶은 경우, Bit Field 라는 기능을 사용한다


기본적인 선언 방법은 다음과 같다.


struct bitField {

BYTE bit1:1;

BYTE bit2:1;

BYTE bit3:1;

BYTE bit4:1;

BYTE bit5:1;

BYTE bit6:1;

}


이와 같이 선언하면 1Byte 에 6개의 변수로 각각 1bit 까지의 데이터를 사용할 수 있다.

1bit 이므로, 0과 1만 입력이 가능하며, 2를 입력하게 되면 앞 비트를 침범하게 된다.


bitField.bit1 = 2; 


이와 같이 데이터값을 셋팅하면, 2의 binary 값은 10 이므로 bitField.bit1 는 0, bitFile.bit2 는 1이 셋팅되게 된다.


bit 단위로 데이터를 저장하거나,  bit 단위의 프로토콜 데이터를 사용하면 상당히 유용한 기능이다.

나는 bit 단위로 정보를 잘라서 전송해야 하는 CAN 프로토콜 사용시 유용하게 사용하였다.


비트필드의 선언 변수형은 C 언어의 모든 변수형이 사용이 가능하며, unsigned 형 변수로 사용하지 않는다면 상당한 주의가 필요하다. 



'Computer Programming > C,C++,MFC' 카테고리의 다른 글

[C]LineDraw - 브레젠험 알고리즘  (0) 2021.06.29
[C/C++] C언어 입력함수 scanf  (0) 2017.02.15
[C/C++] fopen 함수의 옵션값 정리  (0) 2016.11.10
[C/C++] bsearch 함수  (0) 2016.06.22
[MFC]CString <-> Char* 변환  (0) 2013.11.08
Posted by 은돌군
2016. 12. 14. 10:02

사용자의 접속 IP를 확인하는 경우, 기본적으로 다음 코드를 이용하여 사용한다

 

$ip = $_SERVER['REMOTE_ADDR'];

ip, web header, port 등과같이 웹에서 사용하는 기본적인 정보들은 PHP의 "$_SERVER" API 에서 가져올 수 있다.다음은 "$_SERVER" 함수 로 가져올 수 있는 목록이다.

 

 

$_SERVER['DOCUMENT_ROOT'] = 현재 사이트가 위치한 서버상의 위치
$_SERVER['HTTP_ACCEPT_ENCODING'] = 인코딩 방식
$_SERVER['HTTP_ACCEPT_LANGUAGE'] = 언어
$_SERVER['HTTP_USER_AGENT'] = 사이트 접속한 사용자 환경
$_SERVER['REMOTE_ADDR'] = 사이트 접속한 사용자 IP
$_SERVER['SCRIPT_FILENAME'] = 실행되고 있는 위치와 파일명
$_SERVER['SERVER_NAME'] = 사이트 도메인
$_SERVER['SERVER_PORT'] = 사이트가 사용하는 포트
$_SERVER['SERVER_SOFTWARE'] = 서버의 소프트웨어 환경
$_SERVER['GATEWAY_INTERFACE'] = CGI 정보
$_SERVER['SERVER_PROTOCOL'] = 사용된 서버 프로토콜
$_SERVER['REQUEST_URI'] = 현재페이지의 주소에서 도메인 제외
$_SERVER['PHP_SELF'] = 현재페이지의 주소에서 도메인과 넘겨지는 값 제외
$_SERVER['APPL_PHYSICAL_PATH'] = 현재페이지의 실제 파일 주소

 

Posted by 은돌군
2016. 11. 10. 10:30

fopen 함수를 종종 쓸일이 생기는데, 매번쓰는 옵션값 외에는 헷갈리기에 정리해 보았다.


fopen 함수는 파일 입출력을 위한 함수로 다음과 같이 사용할 수 있다.


FILE *fp = NULL;

//우선 파일 포인터로 사용할 변수를 선언하고, 
//경로와 모드값으로 파일을 오픈한뒤 파일포인터에 넣는다.
//fopen 함수의 형태는 다음과 같다.

//FILE *fopen(const char *filename, const char *mode);

fp = fopen("test.txt", "wb");

그리고 위에 fopen Mode 값으로 사용할 수 있는 값들은 다음과 같다.


r : Open for reading only. (읽기 전용)


w : Create for writing. If a file by that name already exists, it will be overwritten.

    (쓰기용으로 파일생성, 동일이름이 있다면 덮어씀.)


a : Append; open for writing at end-of-file or create for writing if the file does not exist.

    (동일명 파일 존재시 끝에 이어씀, 동일명 파일 없으면 쓰기용 파일 생성)


r+ : Open an existing file for update (reading and writing).

    (현재 있는 파일에 read/write 모두 덮어씀.)


w+ : Create a new file for update (reading and writing). 

      If a file by that name already exists, it will be overwritten.

    (읽기/쓰기용으로 파일 생성. 같은 파일 존재시 덮어)


a+ : Open for append; open (or create if the file does not exist) for update at the end of the file.

    (파일이있으면 뒤에 추가, 업다면 새로 생성)


t : Text Mode (텍스트 모드)


b : Binary Mode (이진 파일 모드)



'Computer Programming > C,C++,MFC' 카테고리의 다른 글

[C/C++] C언어 입력함수 scanf  (0) 2017.02.15
[C/C++] Bit Field, 비트 변수 ':'  (0) 2017.02.13
[C/C++] bsearch 함수  (0) 2016.06.22
[MFC]CString <-> Char* 변환  (0) 2013.11.08
[C/C++]OpenSSL Library 사용을 위해  (0) 2013.10.15
Posted by 은돌군