void LogFile::append(const char* msg, const size_t len) { if (m_logHour != timeNow().tm_hour) roll(); ssize_t n = writeto(msg, len); if (-1 == n) { printf("append log file failed\n"); printf("Error no is: %d\n", errno); printf("Error description is:%s\n", strerror(errno)); return ; } size_t rest = len - n; while (rest) { ssize_t rt = writeto(msg + n, rest); if (-1 == rt) { printf("append log file failed\n"); printf("Error no is: %d\n", errno); printf("Error description is:%s\n", strerror(errno)); break; } rest -= rt; } }
void ROMFileWidget::saveFile() { QSettings qs; QString saveto = QFileDialog::getSaveFileName(this, tr("Save ROM"), qs.value("main/last_save_zdata").toString(), tr("Generic Z64 Data (*.zdata);;Any Files (*)")); if (saveto == "") { return; } std::ofstream writeto(saveto.toStdString(), std::ios::binary); if (!writeto) { // use parentWidget() so we don't possibly center over the dock widget // awkwardly QMessageBox::critical(parentWidget(), tr("Error in Saving"), tr("Couldn't open file \"%1\" for writing!").arg(saveto)); return; } qs.setValue("main/last_save_zdata", saveto); std::vector<uint8_t> thedata = the_rom->fileAtNum(filelist->currentIndex().row(), want_dec->isChecked()).getData(); writeto.write(reinterpret_cast<char *>(thedata.data()), thedata.size()); if (!writeto) { QMessageBox::warning(parentWidget(), tr("Possible Error in Saving"), tr("Something went wrong in writing the file, the saved file may be incomplete.")); } writeto.close(); }
static void parse_msg(const char *bytes, size_t len, struct user *user, int kq) { static char chanhdr[] = "GOTROOMMSG "; static char usrhdr[] = "GOTUSERMSG "; static size_t ftrlen = sizeof(CRLF)-1; struct user *u; struct msg *m; size_t offset, hlen, rlen, size; char *buf, *hdr, *cp; if (len == 0) { cmderr(user, MNORECIP, kq); return; } if ((cp = memchr(bytes, ' ', len)) == NULL) { cmderr(user, MNOSPACE, kq); return; } rlen = cp-bytes; if (bytes[0] == '#') { hdr = chanhdr; hlen = sizeof(chanhdr)-1; offset = 0; } else { hdr = usrhdr; hlen = sizeof(usrhdr)-1; offset = rlen+1; } size = hlen + (user->namelen+1) + (len-offset) + ftrlen; m = malloc_or_die(sizeof(*m) + size); buf = (char *)(m+1); bcopy(hdr, buf, hlen); buf += hlen; bcopy(user->name, buf, user->namelen); buf += user->namelen; *buf++ = ' '; bcopy(bytes+offset, buf, len-offset); bcopy(CRLF, buf+len-offset, ftrlen); m->bytes = (char *)(m+1); m->len = size; m->refcnt = 0; if (bytes[0] == '#') { struct channel *c; struct list *up; for (short i = 0; i < user->nchans; i++) { c = user->joined_chans[i]; if (bequal(c->name, c->len, bytes, rlen)) { LIST_FOREACH_ELT(up, &c->users, struct user, u) writeto(u, m, kq); ok(user, kq); return; } } cmderr(user, CHNJOINED, kq); free_msg(m); } else if ((u = table_get(users, bytes, rlen)) == NULL) {
size_t TCPBuffer::_push(const char *address, size_t len) { if(ioerr) return 0; ssize_t result = writeto(address, len); if(result < 0) result = 0; return (size_t)result; }
int send_attachedfile (char *file_name,int pcEmailId, int sockfd) { char buffer[FILE_BUFFER_SIZE]="attafrcli|"; sprintf(buffer,"attafrcli|%d|",pcEmailId); char *buf=strrchr(buffer,'|')+1; FILE *fp = fopen (file_name, "rb"); if (NULL == fp) { printf ("File:\t%s Not Found\n", file_name); return 1; } else { //bzero (buffer, BUFFER_SIZE); int file_block_length = 0; // while( (file_block_length = read(fp,buffer,BUFFER_SIZE))>0) while ((file_block_length = fread (buf, sizeof (char), FILE_BUFFER_SIZE, fp)) > 0) { printf ("file_block_length = %d\n", file_block_length); //发送buffer中的字符串到new_server_socket,实际是给客户端 /*if (send (sockfd, buffer, file_block_length, 0) < 0) { printf ("Send File:\t%s Failed\n", file_name); break; }*/ strcat(buffer,"\0"); printf("string sended to server:%s\n",buffer); writeto(sockfd,buffer); bzero (buffer, FILE_BUFFER_SIZE); } // close(fp); } fclose (fp); printf ("File:%s Transfer Finished\n", file_name); return 0; }
static inline void ok(struct user *u, int kq) { static struct msg OK = { "OK" CRLF, 4, 1 }; writeto(u, &OK, kq); }
static inline void cmderr(struct user *u, enum error err, int kq) { writeto(u, &error_msg[err], kq); }