프로그래밍 QnA

siba555의 이미지

unix계열 C함수중에 OS설정 charset이 utf-8인지 euc-kr인지 알수있는 함수가 있나요?

문자열파싱처리중인데 euc-kr은 한글이 2byte utf-8은 3byte로 표현이 되어서 둘을 구분해줘야할것 같은데요.
감사합니다.

hoya128의 이미지

header file 참조 구조?

헤더 파일에서 선언된 union과 struct가 서로 꼬였는데.. 어떻게 해결을 해야할지 모르겠습니다.

에서는 typedef union _uA { uB ub; ... } uA;

typedef struct _tA { ... } tA;

처럼 B.h를 이용하고,

에서는 typedef union _uB { ... } uB;

에서는 tA ta; 처럼 A.h를 이용합니다.

에서 #include "A.h" #include "B.h"

와 같이 사용을 하려고 하는데,
B.h에 있는 union을 A가 이용해서 안되네요...

구조를 약간 깨더라도
#include "B.h"
#include "A.h"
로 하려고 해도
A.h에 있는 union을 B가 이용해서 안되구요...

이거때메 헤더파일을 더 쪼개면 가독성이나 구조적 문제로 꺼려지는데..

dokeun의 이미지

마지막의 SoComplex();는 함수인가요?

C++ 어제 입문했습니다 ^^;
생성자와 복사생성자를 공부하느라 아래의 코드를 보고 있는데, 잘 이해가 안가는 부분이 있어서 질문 올립니다.
return 0;전의 SoComplex();는 SoComplex 클래스의 생성자를 호출하는 것 같은데, 정확하게 무슨 의미인지 모르겠습니다.

fensy의 이미지

c# double array 소켓전송 어떤식으로 해야되나요.?

c# 은 c랑 달리 포인터 개념이 사라진거 같은데여
소켓통신할때 byte array로만 통신이 되는데.. double array 통신을 하려면 어떻게 컨버팅 해서 보내야 될까요?

headengin의 이미지

module에서 stdin (/dev/stdin)을 입력 될때마다 읽어오고 싶은데요.. 도와주세요..

안녕하세요.
제가 요즘 module 프로그래밍을 하려고 하는데요,

module에서 stdin으로 들어오는 입력을 받고싶습니다.
(처음 한번만 argument로 넘겨주는게 아니고, 제가 입력하고 싶을때 입력하여 변화를 주려고요.)

사실은 keyboard interrupt로 구현하고 있었는데요,
SSH 접속으로 하다보니, input이 stdin 이더라구요.

그리고, 응용 프로그램으로는 stdin을 open해서 key를 받아서 잘 Test했습니다.
이거를 module로 하고 싶어서 찾아보니
open도 filp_open을 사용해야하더라구요.

아무튼, 혹시 방법을 아시는 분이나 알고 계신 분은 많은 조언 부탁드립니다.
제가 제어계측공학과를 전공하고 firmware / FPGA 일만 해오다가,
제어 관련된 일을 해보고 싶어서
공부중이거든요;;;
많은 도움 부탁드립니다. (__)

asleea의 이미지

STL과 Thread

STL이 Thread에 안전하지 않다고 하는 것은 여기저기서 주워들어 알고 있는데,

그 뜻이 만약

std::vector<int> vec;

라는 자원을 만들었다면 vec라는 자원에 접근이 안전하지 않다는 뜻인가요

아니면 같은 자원이 아니더라도 thread1 에서 vec1을 선언하고 thread2에서 vec2를 선언해서 따로 사용 하더라도 vector라는 STL을 사용 하는것 자체가 안전하지 않다는 뜻인가요?(vector 내부적으로 static member 변수가 존재 한다던가 해서)

위의 내용은 전자의 내용이 맞을 듯하긴한데 혹시나 해서, 그럼 컨테이너가 아닌 STL 알고리즘 관련 함수들은 그냥 여러 쓰레드에서 함수 사용자체가 안전하지 않다는 뜻이 겠죠?

chobozzang의 이미지

windows open 함수가 fail이 납니다...

제 노트북에서는 문제가 없었는데요... 다른 노트북에선 open 함수가 fail이 납니다... 혹시 권한 문제일까요...? 권한 문제라면 windows에서 권한을 수정할 수 있는 함수가 있을까요?

//qt에서 실행바이너리의 path를 얻어오는 함수
std::string clipath = QApplication::applicationDirPath().toStdString();
sprintf(fname, "%s/current", clipath.c_str());

if(0 < (fd=open(fname.c_str(), O_CREAT | O_WRONLY | O_TRUNC, 0777)))
{
qDebug() << "[" << fname << "] success to open";
}
else
{
qDebug() << "[Windows] [" << fname << "] failed to open";
}

sparkelholic의 이미지

혹시 node.js 기반으로 scp 구현한 모듈/프로젝트 아시는 분 계신가요?

저는 현재 node.js 기반으로 어플을 만들고 있는데, target 으로 file 을 전송할 필요가 있습니다.
target 은 scp 는 허용하지만 sftp 는 지원하지 않고 있습니다.

Host PC 의 scp command 를 fork 해서 사용하는 방식으로 쉡게 구현 가능하지만 윈도우 에서는 기본적으로 scp 가 없기에 이 방식은 고려 대상이 아닙니다. (또한 OS Dependent 한 다른 추가 어플 설치도 원하는 방식이 아닙니다. )
scp 를 지원한다는 node 기반 프로젝트를 2개 정도 찾았지만...

* node-scp ( https://github.com/ecto/node-scp )
==> Host PC 의 scp fork 해서 사용하는 방식으로 고려 대상에서 제외.

asleea의 이미지

#define B19200

#define B19200

에서 B가 뜻하는 것이 무엇인가요?

bstill의 이미지

TCP connection의 block 현상을 재연할 수 있을까요?

TCP 소켓 프로그래밍 질문입니다.
NON-BLOCK이 아닌 일반 소켓일 경우..
tcp connect()를 할 경우, 서버쪽 받아주는 프로세스가 어떤 상황일 경우, 클라이언트의 connect()함수가 리턴을하지 않고 블럭(멈춤)상태로 있는것을 경험한적이 있습니다.
정확이 서버프로세스가 어떤 상태인지는 기억이 나질 않아서요..

서버프로세스를 간단히 코딩하여 이 경우를 재현 할 수 있을까요?

어렴풋이 기억으로는 서버쪽에서 accept()를 하지 않으면, 클라이언트쪽의 connect()가 block된다..라고 알고 있는데,
listen() 후에 sleep(1)로 무한루프를 돌려봤더니, 클라이언트의 connect() 함수는 그냥 0을 리턴합니다.

connect() 함수가 block 걸리는 경우를 재현하려면 서버쪽에어 어떻게 해야 할까요..?

페이지

프로그래밍 QnA 구독하기