티스토리 뷰

programming/c/c++

question and answer

Jacob_baek 2014. 8. 11. 18:00

Question And Answer


Question:  ../test.h:111: error: expected ‘,’ or ‘...’ before ‘public’

Answer: 현재 코드는 c로 생성되어 있었고 g++을 통해 컴파일을 수행하고 있었다. g++은 해당 public 키워드가 예약되어 있어 위와 같은 에러를 발생시켰다. 만약 private 과 같은 키워드를 사용하는 경우도 동일하게 발생될 것이다. 이와 같은 경우 g++을 변경하거나 혹은 해당 파라메터를 변경하는 방법밖에 없다.


Question:  
test.c:20: error: expected `]' before ‘;’ token

test.c:20: error: abstract declarator ‘test_t*’ used as declaration

test.c:20: error: expected primary-expression before ‘]’ token

test.c:20: error: expected `;' before ‘]’ token

Answer: 당시 define 문을 사용하였는데 잘못된 (;)이 들어가 문제가 되었었다. define 문 마지막에 붙은 (;)을 제거한후 문제없이 컴파일 되는 것을 확인하였다.


Questiontest.c:30: error: crosses initialization of ‘const char* test’

Answer: 선언과 동시에 char * 변수에 데이터를 입력한 경우 위와 같은 에러가 발생되었다. 이를 개선하기 위해 함수의 첫부분에 변수를 선언하고 변수에 데이터는 기존 위치에서 삽입하도록 하였다.


Questiontest.c:30: error: dereferencing pointer to incomplete type

Answer: 구조체를 typedef 선언하고 실제 사용된 구조체는 다른 소스에 존재하였는데 당시 선언한 구조체를 사용한 소스파일에는 관련 구조체에 대해 정의된 헤더파일이 선언되어 있지 않아서 나타난 문제이다. 해당 헤더파일을 해당 소스파일내에 추가해주고 문제가 해결되었다.


Question: seteuid와 popen(system)을 호출하는 경우 effective uid가 안먹어요.

Answer: setuid와 popen이 같이 사용되는 경우는 effective uid가 아닌 real uid가 사용되게 된다.

그리하여 seteuid를 통한 effective uid를 변경한다하여도 root로 실행하고자 한경우 permission문제가 발생한다.

이럴 경우 setresuid를 사용하면 위와 같은 문제를 해결할 수 있다.

http://stackoverflow.com/questions/9300804/popen-fails-when-called-after-seteuid0


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함