commit
						19a1eff8f1
					
				 7 changed files with 546 additions and 0 deletions
			
			
		- 
					63.gitattributes
- 
					363.gitignore
- 
					16Child/Child.cs
- 
					9Child/Child.csproj
- 
					48Parent/Parent.cs
- 
					13Parent/Parent.csproj
- 
					34PipeTest.sln
| @ -0,0 +1,63 @@ | |||
| ############################################################################### | |||
| # Set default behavior to automatically normalize line endings. | |||
| ############################################################################### | |||
| * text=auto | |||
| 
 | |||
| ############################################################################### | |||
| # Set default behavior for command prompt diff. | |||
| # | |||
| # This is need for earlier builds of msysgit that does not have it on by | |||
| # default for csharp files. | |||
| # Note: This is only used by command line | |||
| ############################################################################### | |||
| #*.cs     diff=csharp | |||
| 
 | |||
| ############################################################################### | |||
| # Set the merge driver for project and solution files | |||
| # | |||
| # Merging from the command prompt will add diff markers to the files if there | |||
| # are conflicts (Merging from VS is not affected by the settings below, in VS | |||
| # the diff markers are never inserted). Diff markers may cause the following  | |||
| # file extensions to fail to load in VS. An alternative would be to treat | |||
| # these files as binary and thus will always conflict and require user | |||
| # intervention with every merge. To do so, just uncomment the entries below | |||
| ############################################################################### | |||
| #*.sln       merge=binary | |||
| #*.csproj    merge=binary | |||
| #*.vbproj    merge=binary | |||
| #*.vcxproj   merge=binary | |||
| #*.vcproj    merge=binary | |||
| #*.dbproj    merge=binary | |||
| #*.fsproj    merge=binary | |||
| #*.lsproj    merge=binary | |||
| #*.wixproj   merge=binary | |||
| #*.modelproj merge=binary | |||
| #*.sqlproj   merge=binary | |||
| #*.wwaproj   merge=binary | |||
| 
 | |||
| ############################################################################### | |||
| # behavior for image files | |||
| # | |||
| # image files are treated as binary by default. | |||
| ############################################################################### | |||
| #*.jpg   binary | |||
| #*.png   binary | |||
| #*.gif   binary | |||
| 
 | |||
| ############################################################################### | |||
| # diff behavior for common document formats | |||
| #  | |||
| # Convert binary document formats to text before diffing them. This feature | |||
| # is only available from the command line. Turn it on by uncommenting the  | |||
| # entries below. | |||
| ############################################################################### | |||
| #*.doc   diff=astextplain | |||
| #*.DOC   diff=astextplain | |||
| #*.docx  diff=astextplain | |||
| #*.DOCX  diff=astextplain | |||
| #*.dot   diff=astextplain | |||
| #*.DOT   diff=astextplain | |||
| #*.pdf   diff=astextplain | |||
| #*.PDF   diff=astextplain | |||
| #*.rtf   diff=astextplain | |||
| #*.RTF   diff=astextplain | |||
| @ -0,0 +1,363 @@ | |||
| ## Ignore Visual Studio temporary files, build results, and | |||
| ## files generated by popular Visual Studio add-ons. | |||
| ## | |||
| ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore | |||
| 
 | |||
| # User-specific files | |||
| *.rsuser | |||
| *.suo | |||
| *.user | |||
| *.userosscache | |||
| *.sln.docstates | |||
| 
 | |||
| # User-specific files (MonoDevelop/Xamarin Studio) | |||
| *.userprefs | |||
| 
 | |||
| # Mono auto generated files | |||
| mono_crash.* | |||
| 
 | |||
| # Build results | |||
| [Dd]ebug/ | |||
| [Dd]ebugPublic/ | |||
| [Rr]elease/ | |||
| [Rr]eleases/ | |||
| x64/ | |||
| x86/ | |||
| [Ww][Ii][Nn]32/ | |||
| [Aa][Rr][Mm]/ | |||
| [Aa][Rr][Mm]64/ | |||
| bld/ | |||
| [Bb]in/ | |||
| [Oo]bj/ | |||
| [Oo]ut/ | |||
| [Ll]og/ | |||
| [Ll]ogs/ | |||
| 
 | |||
| # Visual Studio 2015/2017 cache/options directory | |||
| .vs/ | |||
| # Uncomment if you have tasks that create the project's static files in wwwroot | |||
| #wwwroot/ | |||
| 
 | |||
| # Visual Studio 2017 auto generated files | |||
| Generated\ Files/ | |||
| 
 | |||
| # MSTest test Results | |||
| [Tt]est[Rr]esult*/ | |||
| [Bb]uild[Ll]og.* | |||
| 
 | |||
| # NUnit | |||
| *.VisualState.xml | |||
| TestResult.xml | |||
| nunit-*.xml | |||
| 
 | |||
| # Build Results of an ATL Project | |||
| [Dd]ebugPS/ | |||
| [Rr]eleasePS/ | |||
| dlldata.c | |||
| 
 | |||
| # Benchmark Results | |||
| BenchmarkDotNet.Artifacts/ | |||
| 
 | |||
| # .NET Core | |||
| project.lock.json | |||
| project.fragment.lock.json | |||
| artifacts/ | |||
| 
 | |||
| # ASP.NET Scaffolding | |||
| ScaffoldingReadMe.txt | |||
| 
 | |||
| # StyleCop | |||
| StyleCopReport.xml | |||
| 
 | |||
| # Files built by Visual Studio | |||
| *_i.c | |||
| *_p.c | |||
| *_h.h | |||
| *.ilk | |||
| *.meta | |||
| *.obj | |||
| *.iobj | |||
| *.pch | |||
| *.pdb | |||
| *.ipdb | |||
| *.pgc | |||
| *.pgd | |||
| *.rsp | |||
| *.sbr | |||
| *.tlb | |||
| *.tli | |||
| *.tlh | |||
| *.tmp | |||
| *.tmp_proj | |||
| *_wpftmp.csproj | |||
| *.log | |||
| *.vspscc | |||
| *.vssscc | |||
| .builds | |||
| *.pidb | |||
| *.svclog | |||
| *.scc | |||
| 
 | |||
| # Chutzpah Test files | |||
| _Chutzpah* | |||
| 
 | |||
| # Visual C++ cache files | |||
| ipch/ | |||
| *.aps | |||
| *.ncb | |||
| *.opendb | |||
| *.opensdf | |||
| *.sdf | |||
| *.cachefile | |||
| *.VC.db | |||
| *.VC.VC.opendb | |||
| 
 | |||
| # Visual Studio profiler | |||
| *.psess | |||
| *.vsp | |||
| *.vspx | |||
| *.sap | |||
| 
 | |||
| # Visual Studio Trace Files | |||
| *.e2e | |||
| 
 | |||
| # TFS 2012 Local Workspace | |||
| $tf/ | |||
| 
 | |||
| # Guidance Automation Toolkit | |||
| *.gpState | |||
| 
 | |||
| # ReSharper is a .NET coding add-in | |||
| _ReSharper*/ | |||
| *.[Rr]e[Ss]harper | |||
| *.DotSettings.user | |||
| 
 | |||
| # TeamCity is a build add-in | |||
| _TeamCity* | |||
| 
 | |||
| # DotCover is a Code Coverage Tool | |||
| *.dotCover | |||
| 
 | |||
| # AxoCover is a Code Coverage Tool | |||
| .axoCover/* | |||
| !.axoCover/settings.json | |||
| 
 | |||
| # Coverlet is a free, cross platform Code Coverage Tool | |||
| coverage*.json | |||
| coverage*.xml | |||
| coverage*.info | |||
| 
 | |||
| # Visual Studio code coverage results | |||
| *.coverage | |||
| *.coveragexml | |||
| 
 | |||
| # NCrunch | |||
| _NCrunch_* | |||
| .*crunch*.local.xml | |||
| nCrunchTemp_* | |||
| 
 | |||
| # MightyMoose | |||
| *.mm.* | |||
| AutoTest.Net/ | |||
| 
 | |||
| # Web workbench (sass) | |||
| .sass-cache/ | |||
| 
 | |||
| # Installshield output folder | |||
| [Ee]xpress/ | |||
| 
 | |||
| # DocProject is a documentation generator add-in | |||
| DocProject/buildhelp/ | |||
| DocProject/Help/*.HxT | |||
| DocProject/Help/*.HxC | |||
| DocProject/Help/*.hhc | |||
| DocProject/Help/*.hhk | |||
| DocProject/Help/*.hhp | |||
| DocProject/Help/Html2 | |||
| DocProject/Help/html | |||
| 
 | |||
| # Click-Once directory | |||
| publish/ | |||
| 
 | |||
| # Publish Web Output | |||
| *.[Pp]ublish.xml | |||
| *.azurePubxml | |||
| # Note: Comment the next line if you want to checkin your web deploy settings, | |||
| # but database connection strings (with potential passwords) will be unencrypted | |||
| *.pubxml | |||
| *.publishproj | |||
| 
 | |||
| # Microsoft Azure Web App publish settings. Comment the next line if you want to | |||
| # checkin your Azure Web App publish settings, but sensitive information contained | |||
| # in these scripts will be unencrypted | |||
| PublishScripts/ | |||
| 
 | |||
| # NuGet Packages | |||
| *.nupkg | |||
| # NuGet Symbol Packages | |||
| *.snupkg | |||
| # The packages folder can be ignored because of Package Restore | |||
| **/[Pp]ackages/* | |||
| # except build/, which is used as an MSBuild target. | |||
| !**/[Pp]ackages/build/ | |||
| # Uncomment if necessary however generally it will be regenerated when needed | |||
| #!**/[Pp]ackages/repositories.config | |||
| # NuGet v3's project.json files produces more ignorable files | |||
| *.nuget.props | |||
| *.nuget.targets | |||
| 
 | |||
| # Microsoft Azure Build Output | |||
| csx/ | |||
| *.build.csdef | |||
| 
 | |||
| # Microsoft Azure Emulator | |||
| ecf/ | |||
| rcf/ | |||
| 
 | |||
| # Windows Store app package directories and files | |||
| AppPackages/ | |||
| BundleArtifacts/ | |||
| Package.StoreAssociation.xml | |||
| _pkginfo.txt | |||
| *.appx | |||
| *.appxbundle | |||
| *.appxupload | |||
| 
 | |||
| # Visual Studio cache files | |||
| # files ending in .cache can be ignored | |||
| *.[Cc]ache | |||
| # but keep track of directories ending in .cache | |||
| !?*.[Cc]ache/ | |||
| 
 | |||
| # Others | |||
| ClientBin/ | |||
| ~$* | |||
| *~ | |||
| *.dbmdl | |||
| *.dbproj.schemaview | |||
| *.jfm | |||
| *.pfx | |||
| *.publishsettings | |||
| orleans.codegen.cs | |||
| 
 | |||
| # Including strong name files can present a security risk | |||
| # (https://github.com/github/gitignore/pull/2483#issue-259490424) | |||
| #*.snk | |||
| 
 | |||
| # Since there are multiple workflows, uncomment next line to ignore bower_components | |||
| # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) | |||
| #bower_components/ | |||
| 
 | |||
| # RIA/Silverlight projects | |||
| Generated_Code/ | |||
| 
 | |||
| # Backup & report files from converting an old project file | |||
| # to a newer Visual Studio version. Backup files are not needed, | |||
| # because we have git ;-) | |||
| _UpgradeReport_Files/ | |||
| Backup*/ | |||
| UpgradeLog*.XML | |||
| UpgradeLog*.htm | |||
| ServiceFabricBackup/ | |||
| *.rptproj.bak | |||
| 
 | |||
| # SQL Server files | |||
| *.mdf | |||
| *.ldf | |||
| *.ndf | |||
| 
 | |||
| # Business Intelligence projects | |||
| *.rdl.data | |||
| *.bim.layout | |||
| *.bim_*.settings | |||
| *.rptproj.rsuser | |||
| *- [Bb]ackup.rdl | |||
| *- [Bb]ackup ([0-9]).rdl | |||
| *- [Bb]ackup ([0-9][0-9]).rdl | |||
| 
 | |||
| # Microsoft Fakes | |||
| FakesAssemblies/ | |||
| 
 | |||
| # GhostDoc plugin setting file | |||
| *.GhostDoc.xml | |||
| 
 | |||
| # Node.js Tools for Visual Studio | |||
| .ntvs_analysis.dat | |||
| node_modules/ | |||
| 
 | |||
| # Visual Studio 6 build log | |||
| *.plg | |||
| 
 | |||
| # Visual Studio 6 workspace options file | |||
| *.opt | |||
| 
 | |||
| # Visual Studio 6 auto-generated workspace file (contains which files were open etc.) | |||
| *.vbw | |||
| 
 | |||
| # Visual Studio LightSwitch build output | |||
| **/*.HTMLClient/GeneratedArtifacts | |||
| **/*.DesktopClient/GeneratedArtifacts | |||
| **/*.DesktopClient/ModelManifest.xml | |||
| **/*.Server/GeneratedArtifacts | |||
| **/*.Server/ModelManifest.xml | |||
| _Pvt_Extensions | |||
| 
 | |||
| # Paket dependency manager | |||
| .paket/paket.exe | |||
| paket-files/ | |||
| 
 | |||
| # FAKE - F# Make | |||
| .fake/ | |||
| 
 | |||
| # CodeRush personal settings | |||
| .cr/personal | |||
| 
 | |||
| # Python Tools for Visual Studio (PTVS) | |||
| __pycache__/ | |||
| *.pyc | |||
| 
 | |||
| # Cake - Uncomment if you are using it | |||
| # tools/** | |||
| # !tools/packages.config | |||
| 
 | |||
| # Tabs Studio | |||
| *.tss | |||
| 
 | |||
| # Telerik's JustMock configuration file | |||
| *.jmconfig | |||
| 
 | |||
| # BizTalk build output | |||
| *.btp.cs | |||
| *.btm.cs | |||
| *.odx.cs | |||
| *.xsd.cs | |||
| 
 | |||
| # OpenCover UI analysis results | |||
| OpenCover/ | |||
| 
 | |||
| # Azure Stream Analytics local run output | |||
| ASALocalRun/ | |||
| 
 | |||
| # MSBuild Binary and Structured Log | |||
| *.binlog | |||
| 
 | |||
| # NVidia Nsight GPU debugger configuration file | |||
| *.nvuser | |||
| 
 | |||
| # MFractors (Xamarin productivity tool) working folder | |||
| .mfractor/ | |||
| 
 | |||
| # Local History for Visual Studio | |||
| .localhistory/ | |||
| 
 | |||
| # BeatPulse healthcheck temp database | |||
| healthchecksdb | |||
| 
 | |||
| # Backup folder for Package Reference Convert tool in Visual Studio 2017 | |||
| MigrationBackup/ | |||
| 
 | |||
| # Ionide (cross platform F# VS Code tools) working folder | |||
| .ionide/ | |||
| 
 | |||
| # Fody - auto-generated XML schema | |||
| FodyWeavers.xsd | |||
| @ -0,0 +1,16 @@ | |||
| using System; | |||
| 
 | |||
| namespace PipeTest | |||
| { | |||
|     class Child | |||
|     { | |||
|         static void Main(string[] args) | |||
|         { | |||
|             var size = long.Parse(args[0]); | |||
|             for (long i = 0; i < size; ++i) | |||
|             { | |||
|                 Console.Write((char)(0x20+(i & 0x3f))); | |||
|             } | |||
|         } | |||
|     } | |||
| } | |||
| @ -0,0 +1,9 @@ | |||
| <Project Sdk="Microsoft.NET.Sdk"> | |||
| 
 | |||
|   <PropertyGroup> | |||
|     <OutputType>Exe</OutputType> | |||
|     <TargetFramework>net5.0</TargetFramework> | |||
|     <RootNamespace>PipeTest</RootNamespace> | |||
|   </PropertyGroup> | |||
| 
 | |||
| </Project> | |||
| @ -0,0 +1,48 @@ | |||
| using System; | |||
| using System.Diagnostics; | |||
| 
 | |||
| namespace PipeTest | |||
| { | |||
|     class Parent | |||
|     { | |||
|         private static bool Test(long size) | |||
|         { | |||
|             Console.WriteLine($"Testing: {size}"); | |||
|             bool result = true; | |||
|             using (var p = new Process()) | |||
|             { | |||
|                 p.StartInfo.FileName = @".\Child.exe"; | |||
|                 p.StartInfo.Arguments = size.ToString(); | |||
|                 p.StartInfo.RedirectStandardOutput = true; | |||
|                 if (! p.Start()) throw new Exception("子プロセス開始失敗"); | |||
|                 if (!p.WaitForExit(2000)) | |||
|                 { | |||
|                     result = false; | |||
|                     p.Kill(); | |||
|                 } | |||
|                 //Console.Write(p.StandardOutput.ReadToEnd());
 | |||
|             } | |||
|             Console.WriteLine($"Result: {result}"); | |||
|             return result; | |||
|         } | |||
|         static void Main(string[] args) | |||
|         { | |||
|             long size = 1; | |||
|             while (Test(size)) size *= 2; | |||
|             var max = size; | |||
|             var min = size / 2; | |||
|             while (min + 1 < max) | |||
|             { | |||
|                 size = (min + max) / 2; | |||
|                 if (Test(size)) | |||
|                 { | |||
|                     min = size; | |||
|                 } else | |||
|                 { | |||
|                     max = size; | |||
|                 } | |||
|             } | |||
|             Console.WriteLine($"size of buffer: {min}"); | |||
|         } | |||
|     } | |||
| } | |||
| @ -0,0 +1,13 @@ | |||
| <Project Sdk="Microsoft.NET.Sdk"> | |||
| 
 | |||
|   <PropertyGroup> | |||
|     <OutputType>Exe</OutputType> | |||
|     <TargetFramework>net5.0</TargetFramework> | |||
|     <RootNamespace>PipeTest</RootNamespace> | |||
|   </PropertyGroup> | |||
| 
 | |||
|   <Target Name="PostBuild" AfterTargets="PostBuildEvent"> | |||
|     <Exec Command="copy $(SolutionDir)Child\$(OutDir)Child.* $(TargetDir)" /> | |||
|   </Target> | |||
| 
 | |||
| </Project> | |||
| @ -0,0 +1,34 @@ | |||
|  | |||
| Microsoft Visual Studio Solution File, Format Version 12.00 | |||
| # Visual Studio Version 16 | |||
| VisualStudioVersion = 16.0.34407.143 | |||
| MinimumVisualStudioVersion = 10.0.40219.1 | |||
| Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Parent", "Parent\Parent.csproj", "{552EA0DE-55C7-4444-B752-E7FE10DD4C25}" | |||
| 	ProjectSection(ProjectDependencies) = postProject | |||
| 		{E9A2A797-B611-4E64-89D8-789B6C0AB486} = {E9A2A797-B611-4E64-89D8-789B6C0AB486} | |||
| 	EndProjectSection | |||
| EndProject | |||
| Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Child", "Child\Child.csproj", "{E9A2A797-B611-4E64-89D8-789B6C0AB486}" | |||
| EndProject | |||
| Global | |||
| 	GlobalSection(SolutionConfigurationPlatforms) = preSolution | |||
| 		Debug|Any CPU = Debug|Any CPU | |||
| 		Release|Any CPU = Release|Any CPU | |||
| 	EndGlobalSection | |||
| 	GlobalSection(ProjectConfigurationPlatforms) = postSolution | |||
| 		{552EA0DE-55C7-4444-B752-E7FE10DD4C25}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |||
| 		{552EA0DE-55C7-4444-B752-E7FE10DD4C25}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||
| 		{552EA0DE-55C7-4444-B752-E7FE10DD4C25}.Release|Any CPU.ActiveCfg = Release|Any CPU | |||
| 		{552EA0DE-55C7-4444-B752-E7FE10DD4C25}.Release|Any CPU.Build.0 = Release|Any CPU | |||
| 		{E9A2A797-B611-4E64-89D8-789B6C0AB486}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |||
| 		{E9A2A797-B611-4E64-89D8-789B6C0AB486}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||
| 		{E9A2A797-B611-4E64-89D8-789B6C0AB486}.Release|Any CPU.ActiveCfg = Release|Any CPU | |||
| 		{E9A2A797-B611-4E64-89D8-789B6C0AB486}.Release|Any CPU.Build.0 = Release|Any CPU | |||
| 	EndGlobalSection | |||
| 	GlobalSection(SolutionProperties) = preSolution | |||
| 		HideSolutionNode = FALSE | |||
| 	EndGlobalSection | |||
| 	GlobalSection(ExtensibilityGlobals) = postSolution | |||
| 		SolutionGuid = {71216868-7167-42DC-A71C-CAEC01004079} | |||
| 	EndGlobalSection | |||
| EndGlobal | |||
						Write
						Preview
					
					
					Loading…
					
					Cancel
						Save
					
		Reference in new issue