bbbody[0].iov_base = (char *) &grp->addresses[i]; bbbody[1].iov_base = &grp->counts[i]; __writev (fd, bbbody, 2);
if (nfilled > (sizeof (bbbody) / sizeof (bbbody[0])) - 2) { __writev (fd, bbbody, nfilled); nfilled = 0; }  bbbody[nfilled++].iov_base = (char *) &grp->addresses[i]; bbbody[nfilled++].iov_base = &grp->counts[i];
write_bb_counts (fd)     int fd;{  struct __bb *grp;  u_char tag = GMON_TAG_BB_COUNT;  int ncounts;  int i;  struct iovec bbhead[2] =    {      { &tag, sizeof (tag) },      { &ncounts, sizeof (ncounts) }    };  struct iovec bbbody[2];  bbbody[0].iov_len = sizeof (grp->addresses[0]);  bbbody[1].iov_len = sizeof (grp->addresses[0]);  /* Write each group of basic-block info (all basic-blocks in a     compilation unit form a single group). */  for (grp = __bb_head; grp; grp = grp->next)    {      ncounts = grp->ncounts;      __writev (fd, bbhead, 2);      for (i = 0; i < ncounts; ++i)	{	  bbbody[0].iov_base = (char *) &grp->addresses[i];	  bbbody[1].iov_base = &grp->counts[i];	  __writev (fd, bbbody, 2);	}    }}