Bird
0
0

Given the following snippet, what will be the output?

medium📝 Predict Output Q4 of 15
FreeRTOS - Design Patterns for RTOS
Given the following snippet, what will be the output?
typedef struct {
  int requestId;
  int data;
} Request;

QueueHandle_t queue;

void ResourceManagerTask(void *pvParameters) {
  Request req;
  while(1) {
    if(xQueueReceive(queue, &req, portMAX_DELAY) == pdPASS) {
      printf("Processed request %d with data %d\n", req.requestId, req.data);
    }
  }
}

// Assume a request with requestId=5 and data=10 is sent to queue
ACompilation error due to struct usage
BProcessed request 10 with data 5
CProcessed request 5 with data 10
DNo output because queue is empty
Step-by-Step Solution
Solution:
  1. Step 1: Understand queue receive behavior

    The Resource Manager Task waits for a request and prints its fields when received.
  2. Step 2: Match sent request values

    The request sent has requestId=5 and data=10, so the printed output matches these values.
  3. Final Answer:

    Processed request 5 with data 10 -> Option C
  4. Quick Check:

    Output matches request fields = Processed request 5 with data 10 [OK]
Quick Trick: Queue receive prints request fields as sent [OK]
Common Mistakes:
  • Mixing requestId and data values
  • Assuming no output without explicit task start
  • Thinking struct causes compile error

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More FreeRTOS Quizzes