コード例 #1
0
ファイル: Installer.c プロジェクト: suriyanr/Keytrans
/* Returns 1 on success, 0 on failure */
int InstallFiles(char *programpath) {
char fullfilepath[1024];
char desktop[1024];
int retval = 0;

   CreateInstallDirectory(programpath);

   if (GetDesktopPath(desktop, 1024) == 0) {
#ifdef DEBUG
      fprintf(stderr, "Couldnt obtain Desktop path.\n");
#endif
      desktop[0] = '\0';
   }
#ifdef DEBUG
   fprintf(stdout, "Desktop Path: %s\n", desktop);
#endif
   strcat(desktop, "\\Vutam.lnk"); // Link name on DeskTop

   sprintf(fullfilepath, "%s\\%s", programpath, NAME_KEYTRANS);
   retval = MyCreateFile(fullfilepath, KeyTrans, LENGTH_KEYTRANS);

   sprintf(fullfilepath, "%s\\%s", programpath, NAME_KEYTRANSHOOKDLL);
   retval += MyCreateFile(fullfilepath, KeyTransHook, LENGTH_KEYTRANSHOOKDLL);

   sprintf(fullfilepath, "%s\\%s", programpath, NAME_VUTAMTTF);
   retval += MyCreateFile(fullfilepath, Vutam, LENGTH_VUTAMTTF);

   sprintf(fullfilepath, "%s\\%s", programpath, NAME_README);
   retval += MyCreateFile(fullfilepath, README, LENGTH_README);

   sprintf(fullfilepath, "%s\\%s", programpath, NAME_KEYTRANS);
   MakeDesktopLink(desktop, fullfilepath);

   if (retval == 4) return(1);
   else return(0);
}
コード例 #2
0
int main()
{ 
	int iCount = 1,i=0,bufsize=0,j=0;
	char iInput[10],iData[20];
	while (1)
	{
		printf("Enter your choice:\n");
		printf("1.create disk\n");
		printf("2.Create a file\n");
		printf("3.Write data into file\n");
		printf("4.Read the written file\n");
		printf("5.delete a file\n"); 
		printf("6.Print list of files available\n");
		scanf("%d", &i);
		MyFile *fp;
		fp = fopen("divFile", "rb+");
		switch (i)
		{
			case 1:
				fp = MyCreateFile("divFile");
				rewind(fp);
				for (i = 1; i < 2049; i++)
					fputc(48, fp);
				rewind(fp);
				break;
			case 2:
				printf("Enter the file name\n");
				scanf("%s",iInput);
				for (i = 0; iInput[i] != '\0'; i++)
					bufsize++;
				fseek(fp,1,SEEK_SET);
				for (i = 1; i < 2049; i++)
				{
					if (fgetc(fp) == 48)
						break;
				}
				rewind(fp);
				MyWrite(fp, iInput ,"ghj",9,i);
				fseek(fp, i, SEEK_SET);
				fputc(49,fp );
				rewind(fp);
				break;
			case 3:
				printf("Enter data to be written\n");
				scanf("%s",iData);
				insert_data(fp, iInput, iData, strlen(iData), iCount);
				break;
			case 4:
				printf("Enter filename\n");
				scanf("%s",iData);
				MyRead(fp, iData, strlen(iData),iCount);
				break;
			case 5:
				printf("Enter filename to be deleted\n");
				gets(iInput);
				delete_file(fp, iInput,iCount);
				iCount--;
				break;
			case 6:
				MyList(fp, iCount);
				break;
		}
		iCount++;
		bufsize = 0;
	}
	scanf("%d", &iCount);
	return 0;
}
コード例 #3
0
ファイル: assuan-socket.c プロジェクト: GroovIM/transport
int
_assuan_sock_bind (assuan_context_t ctx, assuan_fd_t sockfd,
		   struct sockaddr *addr, int addrlen)
{
#ifdef HAVE_W32_SYSTEM
  if (addr->sa_family == AF_LOCAL || addr->sa_family == AF_UNIX)
    {
      struct sockaddr_in myaddr;
      struct sockaddr_un *unaddr;
      HANDLE filehd;
      int len = sizeof myaddr;
      int rc;
      char nonce[16];
      char tmpbuf[33+16];
      DWORD nwritten;

      if (get_nonce (nonce, 16))
        return -1;

      unaddr = (struct sockaddr_un *)addr;

      myaddr.sin_port = 0;
      myaddr.sin_family = AF_INET;
      myaddr.sin_addr.s_addr = htonl (INADDR_LOOPBACK);

      filehd = MyCreateFile (unaddr->sun_path, 
                             GENERIC_WRITE,
                             FILE_SHARE_READ,
                             NULL,
                             CREATE_NEW,
                             FILE_ATTRIBUTE_NORMAL,
                             NULL);
      if (filehd == INVALID_HANDLE_VALUE)
        {
          if (GetLastError () == ERROR_FILE_EXISTS)
            gpg_err_set_errno (WSAEADDRINUSE);
          return -1;
        }

      rc = bind (HANDLE2SOCKET (sockfd), (struct sockaddr *)&myaddr, len);
      if (!rc)
        rc = getsockname (HANDLE2SOCKET (sockfd), 
                          (struct sockaddr *)&myaddr, &len);
      if (rc)
        {
          int save_e = errno;
          CloseHandle (filehd);
          MyDeleteFile (unaddr->sun_path);
          gpg_err_set_errno (save_e);
          return rc;
        }
      snprintf (tmpbuf, sizeof tmpbuf, "%d\n", ntohs (myaddr.sin_port));
      len = strlen (tmpbuf);
      memcpy (tmpbuf+len, nonce,16);
      len += 16;
      
      if (!WriteFile (filehd, tmpbuf, len, &nwritten, NULL))
        {
          CloseHandle (filehd);
          MyDeleteFile (unaddr->sun_path);
          gpg_err_set_errno (EIO);
          return -1;
        }
      CloseHandle (filehd);
      return 0;
    }
  else
    {
      int res = bind (HANDLE2SOCKET(sockfd), addr, addrlen);
      if (res < 0)
	gpg_err_set_errno ( _assuan_sock_wsa2errno (WSAGetLastError ()));
      return res;
    }
#else
  return bind (sockfd, addr, addrlen);
#endif
}