[c] Dodanie więcej informacji do msgsnd (ipc)
Ostatnio zmodyfikowano 2013-11-30 11:10
seomator Temat założony przez niniejszego użytkownika |
[c] Dodanie więcej informacji do msgsnd (ipc) » 2013-11-28 23:58:36 Witajcie, mam taki kod: struct man { long type; char text[ 10 ]; char * dane; };
int main() { struct man pos; scanf( "%s", pos.text ); pos.dane = "tekst"; msgsnd( id, & pos, sizeof( pos ), 0 ); } I powiedzcie mi teraz dlaczego druga funkcja, ktora wyglada tak: msgrcv( id, & pos2, 4096, 0, 0 ); printf( "%s ", pos.dane ); printf( "%s\n", pos.text );
Zwraca tylko pos.text, a pos.dane jest puste? strlen zwraca 0. Dodam, że gdy zamienię char * dane na int dane i pos.dane = "tekst"; na pos.dane = 123456; to działa także jestem w kropce bo nie wiem o co chodzi :D |
|
pekfos |
» 2013-11-29 14:48:26 Zdefiniuj dane jako tablicę i kopiuj string funkcją strcpy() lub strncpy(). |
|
seomator Temat założony przez niniejszego użytkownika |
» 2013-11-29 15:45:07 Dzieki. |
|
seomator Temat założony przez niniejszego użytkownika |
» 2013-11-29 20:35:21 Niestety jest pewien problem jak tak zrobię, to w drugim programie gdzie mam msgrcv program się jakby zapętla i w kółko pokazuje tę wiadomość. Gdy była jedna zmienna było ok, a gdy dodałem tę drugą (tablica, strcpy) to się zapętla. Jakiś pomysł ? edit: Oczywiscie w tym drugim programie gdzie jest msgrcv, to jest dobrze pokazane, tyle ze pokazuje caly cza w kołko, a warunek na pętle jest taki sam: if( id !=- 1 ) while( 1 ) { Ale gdy zrobię dla liczby to działa. |
|
seomator Temat założony przez niniejszego użytkownika |
» 2013-11-30 11:10:29 Pomoże ktoś ? |
|
« 1 » |