深入剖析Android中init进程实现的C语言源码

2020-01-06 13:38:30丽君
  •   if (TEMP_FAILURE_RETRY(connect(s, (struct sockaddr *) &addr, alen)) < 0) { 
  • close(s);  return result; 
  • }   
  • r = TEMP_FAILURE_RETRY(send(s, msg, sizeof(prop_msg), 0));   
  • close(s);  return result; 
  • }   
  • int __system_property_set(const char *key, const char *value)  { 
  • int err;  prop_msg msg; 
  •   if (key == 0) return -1; 
  • if (value == 0) value = "";  if (strlen(key) >= PROP_NAME_MAX) return -1; 
  • if (strlen(value) >= PROP_VALUE_MAX) return -1;   
  • memset(&msg, 0, sizeof(msg));  msg.cmd = PROP_MSG_SETPROP; 
  • strlcpy(msg.name, key, sizeof(msg.name));  strlcpy(msg.value, value, sizeof(msg.value)); 
  •   err = send_prop_msg(&msg); 
  • if (err < 0) {  return err; 
  • }  return 0;