프로그래밍/예전글 45

리눅스 외장하드 마운트하기 (linux mount 명령어)

외장하드 장치 정보 얻기현재 하드디스크들의 파일시스템 정보를 얻어옵니다. sudo blkidSeagate Expansion Drive가 보입니다. 그럼 /dev/sda1가 외장하드 파일입니다.여기서 추가적인 설명을 덧붙이면,/dev 폴더는 장치파일들(device files)을 모아놓은 곳이고, sda1은 두번째 하드디스크라는 소리입니다.(첫번째 하드디스크는 sda, 위의 /dev/mmcblk0p들은 sda의 파티션) 기본적으로 저 파일은 Directory가 아니라서 접근이 불가능합니다. 그리고 이것을 접근할 수 있도록 하는 것이 mount 명령어입니다.이제 다음 명령어를 입력해봅시다.sudo fdisk -l fdisk 명령어는 파티션을 관리하는 명령어입니다. 다른 정보들은 지금 저희에게는 별로 중요하지 ..

라즈베리파이에서 PURE_FTPD기반의 FTP 세팅

저는 라즈베리파이 Documentation에 있는 자료를 참고하여 구축했기 때문에 PURE-FTPD를 기반으로 설명해드리겠습니다.https://www.raspberrypi.org/documentation/remote-access/ftp.md PURE_FTPD 설치다음 문장을 터미널에 입력해 apt-get을 설치합니다.sudo apt-get install pure-ftpd 기본 설정기본적으로 리눅스에서 ftp를 위한 그룹을 만들고 ftp에서 사용할 유저를 추가해주어야합니다.groupadd ftpgroup useradd ftpuser -g ftpgroup -s /sbin/nologin -d /dev/nullgroupadd [groupname][groupname]라는 사용자 그룹을 추가하는 리눅스 명령어입니다..

라즈베리파이 고정아이피 설정하기 (debian 리눅스 공통)

유동아이피 - DHCP로부터 할당받은 IP. 해당 mac adress를 기억하여 일정시간(iptime에서는 IP 대여 시간이라고 부름) 이상 네트워크에 접속하지 않으면 다른 주소로 재할당 받게 됨 고정아이피자신이 설정한 주소로 할당받는 IP (설정을 취소하지 않는 한 변하지 않음)굳이 외부에서 접속할일이 없는 경우에는 관리의 편리함을 위해 유동아이피를 사용하겠지만 그 반대의 경우에는 IP가 바뀔때마다 설정을 바꾸는 것은 매우 비효율적이니 고정아이피를 사용해야합니다. 일단 vim을 설치합니다.(vi에 경우 원격접속시 버그가...) 그 다음에는 /etc/network/interfaces를 수정해야합니다. Before After 위에서 아래로 수정을 하셔야합니다.저는 192.168.0.240으로 할당받았습니다..

라즈베리파이2 모델B 구매 및 설치 후기

드디어 라즈베리파이2 모델B를 구매했습니다! 웬만한 NAS 서버보다 성능이 좋은 라즈베리파이2 모델B입니다.생각보다 훨씬 작더라구요. Micro SD card는 Samsung EVO UHS 등급1 32G을 사용하였습니다.(sd card performance 비교. http://elinux.org/RPi_SD_cards#SD_card_performance) 설치도 아주 간략하게 바뀌었습니다.기존에는 홈페이지에서 raspbian 다운 받고, image writer 설치해서 sd card에다 image write 하고 꼽아서 사용했었는데 이제는 noobs 하나면 설치가 끝납니다. https://www.raspberrypi.org/downloads/noobs/위 사이트에서 noobs 다운받고 압축 풀어서 안의 ..

cocos2d-x NDK r10c 필드에서 to_string 지원이 안됨(stringstream의 사용)

현재 cocos2d-x 3.4버전(ndk r10c)를 사용중인데ios에서는 to_string사용이 가능하나android빌드시 error: 'to_string' was not declared in this scope 에러를 뱉습니다.ndk r10c에서는 to_string함수가 존재하지 않는듯 합니다. 다행히 cocos2d라이브러리 안에 아래의 주석코드가 있네요.말대로 stringstream을 사용합시다. // std::to_string is not supported on android, using std::stringstream instead. string to_string(int value) { stringstream strStream; strStream

C++에서 C#함수 호출(곁다리로 C#에서 C++함수 호출)

C++에서 C#함수를 호출하는 방법에 대해 포스팅하겠습니다.(곁다리로 C#에서 C++함수 호출하는 방법도...) MonoPInvokeCallback를 사용하시면 됩니다. in C# ↓↓↓using UnityEngine; using System.Collections; using System.Runtime.InteropServices; using AOT; public class SomePlugin //어떤 플러그인입니다. { public delegate void SomeCallback( string result ); // c++에서 호출해줄 Callback형입니다. public static extern void ConnectCallback (SomeCallback someCallback); // c#에서 호..

Unity 빌드할 때 유의사항

Unity 빌드 시, 유의할 점 Plugins 폴더 빌드를 수행할 때, 자동으로 Plugins폴더 안의 Android, iOS 폴더안에 있는 "특정" 소스파일이나 리소스파일들을 프로젝트에 추가해줍니다. iOS같은 경우는 Header search path까지 연결해줍니다. 문제는 한 프로젝트로 여러가지 빌드(서로 다른 플러그인을 사용하는)를 뽑을 때 문제가 된다는 것! 잘 삭제 해주지 않으면 쓸데없이 용량을 잡아먹게됩니다.(자동화할때 유의해주세요.) PostprocessBuildPlayer Plugins 폴더에 넣어놓는다고 하더라도 "특정"파일만 넣는 성격때문에 누락되는 파일들이 있습니다. 손으로 넣어주시는 분들은 상관 없지만 자동화할 땐 엄청난 불편함으로 다가옵니다. 그럴때 이것을 사용합니다.(전 모듈로..

[c++11] std function으로 delegate(callback)구현하는 법

예전에 만들었던 인앱 콜백을 통해 예를 들겠습니다. 선언std::function inappRequestCallback; std::function 형태로 변수를 선언합니다.위의 예제에서는 인앱의 productID와 성공여부를 넘겨받습니다. 사용 void StoreLayer::BuyTest(string productID, bool success){} inappRequestCallback = bind(&TitleLayer::BuyTest, this, "", true);inappRequestCallback();orinappRequestCallback = bind(& StoreLayer::BuyTest, storeLayer, placeholders::_1, placeholders::_2);inappRequestC..