On Sun, Jun 05, 2005 at 11:58:38PM +0400, Dmitry (Mothlike) Marochko wrote: > char lockfile[MAXLEN]; > > [...] > > int get_lock() > { > struct flock fl; > > strcpy(lockfile, getenv("HOME")); > strcat(lockfile, BLUEMOTEDIR); > strcat(lockfile, LOCKFILE); Используйте asprintf. char *lockfile = NULL; char *home = getenv("HOME"); if (!home) { // ... exit(1); } if (asprintf(&lockfile, "%s/%s/%s", home, BLUEMOTEDIR, LOCKFILE) > 0) { struct flock fl; // ... free(lockfile); } else { perror("asprintf"); exit(1); } Существует портабельная реализация asprintf -- http://www.ijs.si/software/snprintf/