Open main menu

CDOT Wiki β

Changes

UNX511 - 20121 - Project - TeamA

1,592 bytes added, 14:00, 23 January 2012
added some code snippets
** Main game design
** Putting the socket and the main game design together
 
=Useful Code Snippets=
<pre>
/**
* Runs a linux command, reallocates memory for whatever the command outputs
* @author Rainulf
* @return character pointer to the allocated memory
* @note needs to be free()'d after use
*/
char* runCmd(char* cmd){
FILE* fp;
char* out = NULL;
char* more_out;
char ch;
int count = 0;
 
/* Open the command for reading. */
fp = popen(cmd, "r");
if (fp == NULL) {
printf("Failed to run command\n" );
return 0;
}
 
/* Read the output a line at a time - output it. */
ch = fgetc(fp);
while(ch != '\n' && ch != EOF){
more_out = (char*) realloc(out, ++count); // no need to free more_out
 
if(more_out != NULL){
out = more_out;
out[count-1] = ch;
}
ch = fgetc(fp);
}
pclose(fp);
return out;
}
 
/**
* Concatenates two strings by allocating memory for the two
* @author Rainulf
* @return concatenated string - dynamically allocated
* @note needs to be free()'d after use
*/
char* concat(char* a, char* b){
char* tmp = malloc(snprintf(NULL, 0, "%s %s", a, b) + 1);
sprintf(tmp, "%s %s", a, b);
return tmp;
}
 
/**
* Gets input from STDIN character by character until '\n' or MAXLEN is reached, puts into the character pointer str
* @author Rainulf
* @return n/a
* @note MAXLEN have to be defined
*/
 
void getInput(char* str){
int charCount = 0;
char ch;
// get input from user
ch = getchar();
while( (ch != '\n') && (charCount < MAXLEN) ) {
str[charCount++] = ch;
ch = getchar();
}
str[charCount] = 0;
}
</pre>
9
edits